Sequelize不会在生产中运行播种机

时间:2019-01-30 09:25:08

标签: javascript node.js orm sequelize.js

我已经在这里和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',
      },
    },
  },
};

脚本对于迁移程序和种子服务器的开发工作都非常好,我设法在生产环境中创建表,但是我无法为它们添加数据。

0 个答案:

没有答案