无法在Azure上使用Knex迁移生产数据库

时间:2019-03-18 21:46:37

标签: node.js azure migration knex.js

我是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 App Service编辑器上运行命令。我还附上我的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'
    }
},

1 个答案:

答案 0 :(得分:0)

您正在将连接参数作为模板字符串传递,引擎盖下使用的writeValue模块无法识别它,我想它会用默认值替换它。

尝试用对象替换连接

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中是否存在此选项。