gpt4 book ai didi

sequelize.js - 如果我不从根目录运行它,Sequelize 迁移不会读取 dotenv 变量。为什么?

转载 作者:行者123 更新时间:2023-12-03 22:34:32 24 4
gpt4 key购买 nike

这是我做的

  1. require('dotenv').config() 在配置文件中
  2. 在根目录下设置.sequelizerc
  3. 设置.sequelie文件指向根目录下的config、migrations、models、seeds目录
  4. 从根目录运行 npx seuqlie-cli db:migrate。有用!
  5. 运行 npx seuqlie-cli db:migrate 形成 sequelize 目录。它不读取 dotenv 变量并带有 connect ECONNREFUSED 127.0.0.1:3306

我想知道 4 和 5.. 之间有什么区别?

这是我的目录看起来像 enter image description here

我的 .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`})

关于sequelize.js - 如果我不从根目录运行它,Sequelize 迁移不会读取 dotenv 变量。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62826152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com