我在dotenv文件中保存我的数据库配置。
我正在使用sequelize migration,它在config文件夹中有一个config.json文件:
{
"development": {
"username": "root",
"password": null,
"database": "test",
"host": "127.0.0.1",
"dialect": "postgres"
},
....
}
由于我在dotenv中配置,我必须将其转换为js文件:
require('dotenv').config({ silent: env === 'production'})
const devConfig = {
dialect: 'postgres',
host: process.env.DB_HOST || 'localhost',
port: process.env.DB_PORT || 5432,
database: process.env.DB_NAME || '',
username: process.env.DB_USER || 'postgres',
password: process.env.DB_PASSWORD || '',
migrationStorageTableName: 'migrations'
};
module.exports = {
development: devConfig,
production: devConfig
};
但是如何运行迁移,配置不是JSON?
node_modules/.bin/sequelize db:migrate --config config/config.js
如果您使用的是2.0版或更高版本,则config/config.js
是默认设置之一,因此不应该担心。
您还可以创建一个.sequelizerc
文件,如果您愿意,可以覆盖此路径和/或名称。它位于“选项”下的the documentation中。
我认为使用dotenv-cli实现这一目标的最佳方法。
.sequelizerc
文件。它应该看起来像这样:const path = require('path')
module.exports = {
config: path.resolve('config', 'config.js')
}
dotenv -e path/to/.env sequelize db:migrate
dotenv-cli将填充环境变量,然后运行该命令,因此您的动态设置应该都可以使用现有的配置文件