【问题标题】:knexjs postgresql migration not running properlyknexjs postgresql 迁移未正常运行
【发布时间】:2016-07-30 08:03:26
【问题描述】:

我正在构建一个使用 node + express + postgresql + knexjs ORM 的应用程序。我正在尝试运行迁移:

knex migrate:latest

但我的控制台不断返回:

Using environment: development

Already up to date

这导致我的表没有被创建。这是我的迁移文件:

exports.up = function(knex, Promise) {

    return Promise.all([

            knex.schema.createTable('address', function(table) {

                table.increments();
                table.string('address_id');
                table.string('addr_1');
                table.string('addr_2');
                table.string('city');
                table.string('state');
                table.string('zip');

        ]);
};


exports.down = function(knex, Promise) {

    return Promise.all([

            knex.schema.dropTable(host_domain + '.address'),

        ]);

};

有人知道会发生什么吗?

注意 - 在我运行 knex migrate:latest 时,这些表尚未创建。

提前致谢!

【问题讨论】:

  • knex_migrations 表的内容是什么?这就是 Knex 跟踪它应用了哪些迁移的地方。您的迁移文件是否已经存在?
  • 没有迁移表。根本没有桌子
  • 听起来好像没有设置迁移。你能发布你的 knexfile 吗?

标签: node.js postgresql database-migration knex.js


【解决方案1】:

Knex 默认在 environment = development 中实现迁移。 您需要根据您的环境运行 knex 迁移。

例如,你有下一个 knexfile.js:

module.exports = {
    myenv: { // it is name of environment
       client: 'pg',
       connection: {
           user: 'me',
           database: 'my_app'
       }
     }
};

控制台中的命令:

knex migrate:latest --env myenv

【讨论】:

    猜你喜欢
    • 2020-09-11
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 2019-03-28
    • 2012-02-03
    • 2020-08-17
    • 2022-12-17
    • 2022-12-03
    相关资源
    最近更新 更多