【问题标题】:Prevent sequelize to drop database in node.js app防止续集删除 node.js 应用程序中的数据库
【发布时间】:2014-01-19 20:36:21
【问题描述】:

首先,我使用的是 node.js 与 sequelize ORM 和 Postgres SQL。

我有两个简单的问题:

  1. 每次我重新运行节点应用程序时,sequelize 都会删除并创建数据库中的所有表。如何防止它这样做(我不希望我在数据库中的记录被删除)?我尝试将我的 NODE_ENV 设置为测试,但没有帮助。

  2. sequelize 迁移如何知道它停止的位置(哪些迁移已执行,哪些未执行)。 例如,当我在 Grails 框架中使用数据库迁移时,它会自动在数据库中创建一个表,其中保存了之前执行的所有迁移时间戳,当我重新运行我的应用程序时,它会查看该表并知道哪些迁移已经完成以及哪些不是。 使用节点/续集时我没有看到任何表,那么它是如何工作的? :)

谢谢, 伊万

【问题讨论】:

  • 你能包含一些代码吗?我正在使用带有 postgresql 的 sequelize 并且没有遇到这个问题。
  • 我在 sequelize.js 网页上复制了他们表达的示例,并且只放置了 postgre 数据库而不是 mysql(就像他们在示例中所做的那样)github.com/sequelize/sequelize-expressjs-example(他们的示例链接)
  • 我想通了。他们将 sync: { force: true } 放在 app.js 的某些代码部分中,并覆盖了我在连接到数据库时定义的同步 (false) ......现在第二个问题困扰着我:)

标签: node.js postgresql sequelize.js


【解决方案1】:

正如您已经知道的那样,表格正在被删除,因为您正在这样做

sequelize.sync({ force: true })

原力为真部分是罪魁祸首

关于你的第二个问题 - 迁移状态保存在你的数据库中的一个表中 - 我相信它被称为 sequelize_meta

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2021-05-15
    相关资源
    最近更新 更多