我是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'
}
},
答案 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
中是否存在此选项。