如果我不 运行 从根目录读取 dotenv 变量,则 Sequelize 迁移不会读取它。为什么?
Sequelize migration doesnot read dotenv variable if I don't run it from root directory. why?
这就是我所做的
- require('dotenv').config() 在配置文件中
- 在根目录中设置.sequelizerc,如下所示
- 设置.sequelie文件指向根目录下的config、migrations、models、seeds目录
- 运行
npx seuqlie-cli db:migrate
形成根目录。有用!
- 运行
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
}
},
...
}
您始终可以将路径 属性 用于 dotenv,因此它不限于已调用的文件夹。
dotenv.config({ path: `${process.cwd()}/.env`})
这就是我所做的
- require('dotenv').config() 在配置文件中
- 在根目录中设置.sequelizerc,如下所示
- 设置.sequelie文件指向根目录下的config、migrations、models、seeds目录
- 运行
npx seuqlie-cli db:migrate
形成根目录。有用! - 运行
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
}
},
...
}
您始终可以将路径 属性 用于 dotenv,因此它不限于已调用的文件夹。
dotenv.config({ path: `${process.cwd()}/.env`})