Чтение конфигурации Sequelize неверный диалект - PullRequest
0 голосов
/ 16 ноября 2018

Я работаю над обновлением моего конфигурационного файла sequezlie, чтобы он запускал переменные env при выполнении команды cli migration. Моя настройка отлично работает для удаленных серверов, которые разрешают сохранение переменных env, но моя локальная среда (как и все) не работает, если не запущен dotenv. Я сконфигурировал dotenv в своем конфигурационном файле только в том случае, если распознанная среда имеет значение development, и в моем журнале консоли выводится правильное process.env.DB_DIALECT из postgres, но по какой-то причине во время миграции sequelize говорит мне загрузить mysql. Кто-нибудь может помочь с этой странной проблемой?

Вот заголовок вывода моего терминала и сообщение об ошибке:

DEVELOPMENT DOTENV
postgres
Loaded configuration file "config/config.js".
Error: Please install mysql package manually
    at new ConnectionManager (/Users/user/Desktop/Projects/node/app/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:23:11)
    at new MysqlDialect (/Users/user/Desktop/Projects/node/app/node_modules/sequelize/lib/dialects/mysql/index.js:12:28)
    at new Sequelize (/Users/user/Desktop/Projects/node/app/node_modules/sequelize/lib/sequelize.js:220:18)

Вот мой конфигурационный файл:

var express = require('express');
var app = express();
var path = require('path');

if(app.get('env') === 'development'){
    console.log('DEVELOPMENT DOTENV')
    require('dotenv').config();

};
console.log(process.env.DB_DIALECT) //postgres

module.exports = {
    "development": {
        "username": process.env.DB_LOCAL_USERNAME,
        "password": process.env.DB_LOCAL_PASSWORD,
        "database": process.env.DB_LOCAL_DATABASE,
        "host": "127.0.0.1",
        "dialect": process.env.DB_DIALECT,
        "migrationStorageTableName": "sequelize_meta",
        "autoMigrateOldSchema": true
    },
    "staging": {
        "username": process.env.RDS_USERNAME,
        "password": process.env.RDS_PASSWORD,
        "database": process.env.RDS_DATABASE,
        "host": process.env.RDS_HOSTNAME,
        "dialect": process.env.DB_DIALECT,
        "migrationStorageTableName": "sequelize_meta"
    },
    "production": {
        "username": process.env.RDS_USERNAME,
        "password": process.env.RDS_PASSWORD,
        "database": process.env.RDS_DATABASE,
        "host": process.env.RDS_HOSTNAME,
        "dialect": process.env.DB_DIALECT,
        "migrationStorageTableName": "sequelize_meta"
    }
}

Вот мой файл миграции:

'use strict';

module.exports = {
  up: function (queryInterface, Sequelize) {
    queryInterface.sequelize.query("ALTER TABLE organization ADD CONSTRAINT organization_user_id_fkey FOREIGN KEY (admin_id) REFERENCES synotate_user (user_id) MATCH SIMPLE ON UPDATE CASCADE ON DELETE CASCADE;");
  },

  down: function (queryInterface, Sequelize) {
    queryInterface.sequelize.query("ALTER TABLE organization DROP CONSTRAINT organization_user_id_fkey;");
  }
};
...