【发布时间】:2017-12-11 18:34:38
【问题描述】:
我正在使用 gulp 任务来迁移数据库。出于测试目的,我使用不同的数据库。所以我需要完全相同的数据库。我正在尝试使用 sequelize.sync({ force: true }) 但它不起作用。
我的所有模型都在门户模型中。这是代码:
const models = require('portal-models');
gulp.task('migrate', ['create-database'], (done) => {
models.sequelize.query('SET FOREIGN_KEY_CHECKS = 0')
.then(() => models.sequelize.sync({ force: true, alter: true }))
....
....
....
)
使用 Force: true 它应该可以工作,但对我来说,我遇到了类似 mydatbaseName.tablename 不存在的错误。
我创建了新的测试数据库。我不想在 testdatabase 中手动创建所有内容,所以我正在使用迁移,但我 gusse 同步无法正常工作。
谁能告诉我,我到底应该遵循什么?
提前致谢。
【问题讨论】:
-
您是否使用 sequelize-cli 进行迁移
-
@Shivam:不,我没有使用 sequelize-cli。我正在使用“续集”:“^3.24.3”。
-
如果我手动创建了表,那么它适用于插入查询。但我不想手动创建表。 Force: true 应该映射模式。
-
我添加了 models.sequelize.sync({ force: true, logging: console.log })),现在在控制台中我可以看到所有表都被删除然后再次创建。但仍然在插入时出现错误 ER_NO_SUCH_TABLE: Table 'DatabaseName.TableName' 不存在。
标签: node.js gulp sequelize.js database-migration sequelize-cli