sequelize миграция не читает переменные dotenv - PullRequest
0 голосов
/ 09 июля 2020

Когда я запускаю сервер, он хорошо подключается к базе данных. В моем случае это команда nodemon

Но когда я пытаюсь выполнить миграцию. команда: npx sequelize-cli db:migrate Я получил ошибку подключения ECONNREFUSED.

Я обнаружил, что проблема была в process.env Если я ввел саму строку с именем пользователя, паролем, базой данных, хостом, он работает хорошо! но я думаю, что при миграции он не прошел хорошо Я использую dotenv, как я могу передать правильное значение конфигурации? ..

Любой совет был бы благодарен.

Это мой файл конфигурации

require("dotenv").config();

module.exports = {
  development: {
    username: process.env.DEV_DATABASE_USER_NAME,
    password: process.env.DEV_DATABASE_PASSWORD,
    database: process.env.DEV_DATABASE_NAME,
    host: process.env.DEV_DATABASE_HOST,
    dialect: "mysql",
    charset: "utf8",
    collate: "utf8_general_ci",
    operatorsAliases: false,
    define: {
      underscored: true
    }
  },
  development_light: {
    username: process.env.DEV_DATABASE_USER_NAME,
    password: process.env.DEV_DATABASE_PASSWORD,
    database: process.env.DEV_DATABASE_NAME,
    host: process.env.DEV_DATABASE_HOST,
    dialect: "mysql",
    charset: "utf8",
    collate: "utf8_general_ci",
    operatorsAliases: false,
    define: {
      underscored: true
    }
  },
  test: {
    username: process.env.PROD_DATABASE_USER_NAME,
    password: process.env.PROD_DATABASE_PASSWORD,
    database: process.env.PROD_DATABASE_NAME,
    host: process.env.PROD_DATABASE_HOST,
    dialect: "mysql",
    charset: "utf8",
    collate: "utf8_general_ci",
    operatorsAliases: false,
    define: {
      underscored: true
    }
  },
  production: {
    username: process.env.PROD_DATABASE_USER_NAME,
    password: process.env.PROD_DATABASE_PASSWORD,
    database: process.env.PROD_DATABASE_NAME,
    host: process.env.PROD_DATABASE_HOST,
    dialect: "mysql",
    charset: "utf8",
    collate: "utf8_general_ci",
    operatorsAliases: false,
    define: {
      underscored: true
    }
  }
};

И это ошибка, которую я получил при попытке перенести

Loaded configuration file "config/config.js".
Using environment "development".
(node:90780) [SEQUELIZE0004] DeprecationWarning: A boolean value was passed to options.operatorsAliases. This is a no-op with v5 and should be removed.
(Use `node --trace-deprecation ...` to show where the warning was created)

ERROR: connect ECONNREFUSED 127.0.0.1:3306

1 Ответ

0 голосов
/ 10 июля 2020

Разобрался. он работал хорошо, когда я db: migrate в каталоге root. (Я отредактировал файл .sequelizer c, чтобы указать файлы конфигурации, миграции и c из каталога root.) Думаю, это потому, что каталог root - это то место, где существует файл .env

когда я пытаюсь выполнить db: migrate из каталога sequelize, он по-прежнему не работает с ошибкой подключения,.

Но я еще не уверен в своем предположении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...