我刚接触knex迁移,过去两天一直在努力让它工作,但是没有任何进展。我正在试图使用knex.migration
对象以编程方式运行我的迁移。
首先,使用cli,在迁移目录中创建了一个迁移文件。下面是它的内容:
exports.up = function(knex, Promise) {
return Promise.all([
knex.schema.createTable('users', function (table) {
table.increments('id').primary();
table.string('username');
table.string('password');
table.string('email');
table.string('name');
table.timestamp('date');
}),
]);
};
exports.down = function(knex, Promise) {
};
然后从我的代码中初始化Knex对象:
var knex = Knex({
client:'sqlite3',
connection:{
filename: './knex.sqlite'
}
});
然后我执行迁移:
knex.migrate.latest().then(()=>{
// console.log()
}).catch(err =>{
//
});
但是什么都没有发生。我的迁移文件从来没有被执行,也没有任何错误或警告信息。所以我不知道从哪里开始寻找问题。当我查看我的sqlite数据库时,我可以看到已经创建了表knex_migrations、knex_migrations_lock和sqlite_sequence。
那么我在这里做错了什么?有什么我漏掉的东西吗? 感谢任何建议。
migrations.direction
。如果您在调试器中执行了该代码,应该能够看到为什么找不到迁移文件。无论如何,在这个问题中提供的数据是无法帮助您更多的。尝试编写一个示例Knex应用程序,当您使其正常工作时,请查明您在真实应用程序上所做的不同之处。 - Mikael Lepistö