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

Это то, что я сделал

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

и я хочу знать, в чем разница между 4 и 5 ..?

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

мой файл .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')
}

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

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
    }
  },
...
}

person HYJ    schedule 10.07.2020    source источник
comment
Вот как работает dotenv - предполагается, что файл .env находится на том же уровне, на котором вы запускаете скрипт.   -  person thammada.ts    schedule 11.07.2020


Ответы (1)


Вы всегда можете использовать свойство path для dotenv, чтобы оно не ограничивалось папкой, которая была вызвана.

dotenv.config({ path: `${process.cwd()}/.env`})
person iwaduarte    schedule 29.07.2020