Продолжить миграцию, не распознавая Dotenv

Я могу запустить команду migrate, если напрямую укажу имя базы данных, пользователя и пароль. Но когда я предоставляю переменную / значение env. Он говорит, что база данных не выбрана. Я установил npm i dotenv

npx sequelize-cli db:migrate

dotenv не требуется.

require('dotenv').config();
    module.exports = {
      development: {
        username: process.env.DB_USER,
        password: process.env.DB_PASS,
        database: process.env.DB_NAME,
        host: process.env.DB_HOST,
        dialect: 'mysql',
        logging: false
      },
      test: {
        username: process.env.DB_USER,
        password: process.env.DB_PASS,
        database: process.env.DB_NAME,
        host: process.env.DB_HOST,
        dialect: 'mysql',
        logging: false
      },
      production: {
        use_env_variable: 'DATABASE_URL'
      }
    };

В файле .env у меня есть следующее:

DB_USER=root
DB_PASS= 
DB_NAME=road_rescue_dev
DB_HOST=127.0.0.1

Это работает

development: {
        username: "root",
        password: "",
        database: road_rescue_dev,
        host: process.env.DB_HOST,
        dialect: 'mysql',
        logging: false
      },

person tksilicon    schedule 24.05.2020    source источник


Ответы (2)


Раньше у меня была такая же проблема. Я понял, что должен

  1. require ('dotenv'). config () в файле конфигурации (как и вы)
  2. установите .sequelizerc в корневом каталоге, как показано ниже
  3. установить файл .sequelie, чтобы указать конфигурацию, миграции, модели, каталог семян из корневого каталога
  4. и вы должны запустить npx seuqlie-cli db:migrate корневой каталог формы.

по какой-то причине, если я запускаю npx seuqlie-cli db:migrate из каталога sequleize, он не читает переменные dotenv.

Я все еще не понимаю, почему, но это работает

это мой каталог выглядит как  введите описание изображения здесь

мой файл .sequlizerc

const path = require('path')

module.exports={
    config: path.resolve('src/sequelize/config','config.js'),
    'migrations-path': path.resolve('src/sequelize/migrations'),
    'seeders-path': path.resolve('src/sequelize/seeders'),
    'models-path': path.resolve('src/sequelize/models')
}

Также опубликован вопрос об этом Миграция Sequelize не читает переменную dotenv, если я не запустил ее из корневого каталога. почему?

person HYJ    schedule 10.07.2020

Вы забыли добавить это вверху?

require('dotenv').config()

person saqsham    schedule 24.05.2020
comment
Нет, это есть. - person tksilicon; 24.05.2020
comment
проверьте это: githubtem.com/kylewhittem/kys -sequelize / blob / - person saqsham; 24.05.2020