【问题标题】:Unable to migrate production database with Knex on Azure无法在 Azure 上使用 Knex 迁移生产数据库
【发布时间】:2019-03-18 21:46:37
【问题描述】:

我是 Knex.js 的新手,在运行迁移时遇到了一些问题。我有一个在 Azure 上运行的应用程序。现在,我需要迁移我的生产数据库。

我遵循 knex 指令并通过运行以下命令为环境添加标志。

knex migrate:latest --env production

但是,我无法迁移数据库,似乎我仍在尝试访问本地数据库。我的部分错误代码如下:

Error: connect EACCES 127.0.0.1:5432
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1182:14)

我不知道这是怎么发生的。我在 Azure 应用服务编辑器上运行命令。我还附上了我的 knexfile.js

    production: {
    client: 'postgresql',
    connection: `host=${process.env.DB_HOST} port=5432 dbname=${process.env.DB_NAME} user=${process.env.DB_USER} password=${process.env.DB_PASS} sslmode=required`,
    pool: {
        min: 2,
        max: 10,
    },
    migrations: {
        directory: './db/migrations',
        tableName: 'migrations'
    },
    seeds: {
        directory: './db/seeds'
    }
},

【问题讨论】:

    标签: node.js azure migration knex.js


    【解决方案1】:

    您将连接参数作为模板字符串传递,它无法被底层使用的pg 模块识别,我猜它会将其替换为默认值。

    尝试用对象替换连接

    connection: {
      host: process.env.DB_HOST,
      port: 5432,
      database: process.env.DB_NAME,
      user: process.env.DB_USER,
      password: process.env.DB_PASS
    }
    

    不确定sslmode,因为我不知道knex 中是否存在此选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 2022-01-17
      相关资源
      最近更新 更多