我正在尝试使用命令运行knexfile迁移
knex migrate:latest
并收到以下错误
/Users/<MYUSERNAME>/.npm-global/lib/node_modules/knex/bin/utils/cli-config-utils.js:8
throw new Error(
^
Error: No default configuration file '/Users/<MYUSERNAME>/Desktop/Zipline/ed-tester/knexfile.js' found and no commandline connection parameters passed
at mkConfigObj (/Users/<MYUSERNAME>/.npm-global/lib/node_modules/knex/bin/utils/cli-config-utils.js:8:11)
我的knexfile.js
module.exports = {
development: {
client: 'postgresql',
connection: {
database: process.env.DB_NAME || 'db',
user: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
host: process.env.DB_HOSTNAME,
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: 'knex_migrations'
}
}
};
和我的.env
DB_USERNAME=postgres
DB_HOSTNAME=localhost
DB_NAME=db
DB_PASSWORD=
DB_SSL=false
有人可以解释什么地方出了问题以及如何解决。
答案 0 :(得分:0)
尝试通过运行以下命令-
knex migrate:latest --env development
答案 1 :(得分:0)
我有同样的错误。我的问题是:
我有一个knexfile.js像这样:
require('dotenv').config();
const { DB_USERNAME, DB_PASSWORD, APP_ENV } = process.env;
module.exports = {
development: {
// ...
},
staging: {
// ...
},
production: {
// ...
},
}[APP_ENV];
然后我将production-4
作为APP_ENV
传递(它在我的配置中不存在)。传递存在的环境(production
或在我的配置列表中添加production-4
即可解决问题。
确保knex获得正确的配置(包括客户端,连接,池,迁移...)