【发布时间】:2017-07-03 08:59:13
【问题描述】:
我正在尝试使用 Knex 迁移更改我的 Postgres 数据库,但它们不起作用。
我的 knexfile.js 看起来像这样:
module.exports = {
development: {
client: 'pg',
connection: {
database: 'cms_dev',
},
},
};
然后我有一个看起来像这样的db.js:
const config = require('../knexfile.js');
const env = 'development';
const knex = require('knex')(config[env]);
module.exports = knex;
knex.migrate.latest([config]);
如果我从一个新的数据库开始,我的第一次迁移工作,但如果我尝试使用新的(第二次)迁移更新数据库,它什么也不做。
当我尝试运行 knex migrate:latest --env development 时,它会说:
Using environment: development
Already up to date
*****编辑*****
我最终生成了另一个新的(第 3 次)迁移,并粘贴了与之前被忽略的完全相同的代码,并且它有效。不知道为什么第二次迁移失败了,而第三次成功了。
【问题讨论】:
-
刷表
knex_migrations和knex_migrations_lock -
第一次运行
knex migrate:latest后,您是否尝试为每个新数据库创建一个额外的迁移?还是您只是创建一个新数据库并运行knex migrate:latest,然后尝试再次运行它并认为它失败了?
标签: postgresql knex.js