这个简单的测试代码:
return queryInterface.createTable('tadam', {id: Sequelize.INTEGER, humus: Sequelize.STRING(255)})
.then(queryInterface.sequelize.query('ALTER TABLE tadam ADD PRIMARY KEY (id)'));
返回以下错误:
Unhandled rejection SequelizeDatabaseError: relation "tadam" does not exist
现在,我明白到执行第二个承诺(关于更改表)时,表还没有创建。
不可能是因为迁移中的所有查询都是同时执行的,因为我有这个测试迁移:
return queryInterface.sequelize.query('ALTER TABLE tadam DROP CONSTRAINT tadam_pkey')
.then(queryInterface.removeIndex('tadam', 'tadam_pkey'));
它工作正常。
那么,任何人都可以解释为什么第一个不起作用以及如何实现它,以便可以从单个迁移中执行表的创建+添加 PK?