gpt4 book ai didi

mysql - 从 v4.0.0 开始需要显式提供方言/建议的修复不起作用

转载 作者:行者123 更新时间:2023-11-29 16:02:59 26 4
gpt4 key购买 nike

我一直在研究这个问题,但无法从任何帖子中找到解决方案。我希望有人可以帮助我解决这个问题,以便我可以将我的应用程序部署到 Heroku。

我尝试设置环境变量并在模型 index.jsconfig.json 中包含方言。我在配置中声明它。

config.json:

{
"development": {
"username": "root",
"password": null,
"database": "ragnar_db",
"host": "127.0.0.1",
"dialect": "mysql"
},
"test": {
"username": "root",
"password": null,
"database": "ragnar_db",
"host": "127.0.0.1",
"dialect": "mysql"
},
"production": {
"use_env_variable": "JAWSDB_URL",
"dialect": "mysql"
}
}

models/index.js:

"use strict";

var fs = require("fs");
var path = require("path");
var Sequelize = require("sequelize");
var basename = path.basename(module.filename);
var env = process.env.NODE_ENV || "development";
var config = require(__dirname + "/../config/config.json")[env];
var db = {};

if (config.use_env_variable) {
var sequelize = new Sequelize(process.env[config.use_env_variable]);
console.log(process.env);
} else {
var sequelize = new Sequelize(
config.database,
config.username,
config.password,
config
);
}

fs.readdirSync(__dirname)
.filter(function (file) {
return (
file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js"
);
})
.forEach(function (file) {
var model = sequelize.import(path.join(__dirname, file));
db[model.name] = model;
});

Object.keys(db).forEach(function (modelName) {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

最佳答案

答案是通过这种方式提供较旧的 Sequelize 版本的代码。

if (config.use_env_variable) {
var sequelize = new Sequelize(process.env[config.use_env_variable]);
console.log(process.env);
} else {
var sequelize = new Sequelize(
config.database,
config.username,
config.password,
{
host: "host_name",
dialect: "Your_dialect"
});
}

另一个答案是重新初始化您的 Sequelize-cli 并运行用于配置数据库的命令。然后运行 ​​Sequelize -init,如果您通过终端设置了所有内容,init 会将您的 JAWSDB_URL 存储为环境变量,并将其设置在您的节点和 heroku 环境中。否则,它会要求您将 JAWSDB_URL 粘贴到终端查询器中。这是对旧版本的更改,允许 Sequelize 比以前更好地隐藏数据库信息,但如果您使用最新版本,旧代码必须同时位于 conf.json/config.js 和 models/index.js 中。

关于mysql - 从 v4.0.0 开始需要显式提供方言/建议的修复不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56010157/

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