【发布时间】:2016-01-24 06:01:13
【问题描述】:
我正在尝试创建初始迁移以填充测试数据库,但我无法使其正常工作。这就是我在迁移中所拥有的:
'use strict';
module.exports = {
up: function (queryInterface, Sequelize) {
return [
queryInterface.bulkInsert('Users', [
{ username: "user1" },
{ username: "user2" }
])];
},
down: function (queryInterface, Sequelize) {
return queryInterface.dropTable('Users');
}
};
我得到这个错误:
== 20151024144833-create-conjugation: migrating =======
{ [SequelizeUniqueConstraintError: Validation error]
name: 'SequelizeUniqueConstraintError',
message: 'Validation error',
errors: [],
fields: [] }
必须有更简单的方法来做到这一点。我检查了其他 SO 问题,但在当前版本的 sequelize 中语法发生了变化。
更新
好的,我意识到我的错误:我假设 sequelize 会处理时间戳。这解决了问题:
up: function (queryInterface, Sequelize) {
console.log(User);
return [
queryInterface.bulkInsert('Users', [
{ username: "user1", createdAt: Date.now(), updatedAt: Date.now() },
{ username: "user2", createdAt: Date.now(), updatedAt: Date.now() }
])
];
}
但我仍然想知道这是否是为我的数据库播种的正确方法。有没有办法使用User.create({}) 做到这一点?
【问题讨论】:
-
我在使用
Date.now()时遇到了问题,需要将其替换为new Date()。使用 SQLite,无法查询数据库,因为时间以错误的格式保存(Uncaught TypeError: date.indexOf is not a functioninsequelize/lib/dialects/sqlite/data-types.js:28:14)
标签: node.js express migration sequelize.js