我已经在这里和Github上阅读了一些问题和讨论,但是没有一个回答我的问题。
我有一些脚本负责迁移和播种数据库。我也有两个环境:开发和生产。问题是,我无法使用脚本播种生产数据库。
迁移的脚本可用于开发和生产,创建表时没有任何错误,但是问题是,我无法为表添加数据。它在开发中工作正常,但不想在生产中工作。
通过此命令运行所有迁移时:
$ sequelize db:seed:all --env production --debug
我看到错误提示它无法连接到本地主机:
Unhandled rejection SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:33060
但是,当我通过此命令运行一次迁移时:
sequelize db:seed 20181002134755-import-cards --env production --debug
什么也没发生,日志似乎还可以:
Sequelize CLI [Node: 11.4.0, CLI: 5.4.0, ORM: 4.41.2]
Loaded configuration file "src\db\config\db.js".
Using environment "production".
这是我的配置文件:
const dotenv = require('dotenv');
const config = require('../../config');
if (!config.isProduction) {
dotenv.config();
}
module.exports = {
development: {
username: 'user',
password: 'password',
database: 'database',
host: '127.0.0.1',
dialect: 'mysql',
port: 33060,
timestamps: true,
sync: {
force: true,
},
define: {
charset: 'utf8mb4',
dialectOptions: {
collate: 'utf8mb4_general_ci',
},
},
},
production: {
username: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
host: process.env.DB_HOST,
dialect: 'mysql',
port: 3306,
timestamps: true,
sync: {
force: true,
},
logging: false,
define: {
charset: 'utf8mb4',
dialectOptions: {
collate: 'utf8mb4_general_ci',
},
},
},
};
脚本对于迁移程序和种子服务器的开发工作都非常好,我设法在生产环境中创建表,但是我无法为它们添加数据。