我有一个使用
nodejs
的 sequelizejs
项目,现在 config.json
的配置文件如下所示:
{
"development": {
"users": {
"username": "postgres",
"password": "admin",
"database": "users",
"host": "127.0.0.1",
"port": 5432,
"dialect": "postgres",
"dialectOptions": {
"ssl": false,
"useUTC": false
},
"logging": false,
"timezone": "+08:00"
}
}
}
现在,
.sequelizerc
文件如下所示:
const path = require('path')
module.exports = {
config: path.resolve('./config/config.json'),
'models-path': path.resolve('./models'),
'seeders-path': path.resolve('./seeders'),
'migrations-path': path.resolve('./migrations'),
}
如果有人想知道,我的
seeders
文件夹的文件树如下所示:
📦seeders
┣ 📂products
┣ 📂test1
┗ 📂users
┃ ┣ 📜20230206125203-Users.js
┃ ┗ 📜20230206132648-UserProfiles.js
我运行命令:
npx sequelize-cli db:seed --seeders-path ./seeders/users --env development.users
但我收到错误:
Sequelize CLI [Node: 16.17.0, CLI: 6.6.0, ORM: 6.29.1]
Loaded configuration file "config\config.json".
ERROR: Dialect needs to be explicitly supplied as of v4.0.0
我的
.env
上已经有 NODE_ENV=development
了。
我阅读了
sequelize
的整个文档,它似乎没有提供 development
内部有嵌套值的场景。
有趣的是,来自 this GitHub 问题上 Sequelize-cli 的用户已经解决了他们的问题,但他们使用了
config.js
,但我仍然在 config.json
上使用 .sequelizerc
,当我尝试模仿他们的代码时,它仍然不适用于我的情况。
我相信这里的问题在于
config.json
嵌套为 development.users
但我似乎没有在我错过的文档中看到任何内容。
请随意回答有关如何为我的种子文件播种的问题!谢谢:)
很高兴看到您如何使用您的配置,根据您的设置,您应该有类似于下面的内容:
const config = require('./config.json');
sequelize = new Sequelize(
config.users.db_name,
config.users.db_user,
config.users.password,
{
host: config.users.host,
dialect: config.users.dialect,
logging: false,
}
);
或
sequelize = new Sequelize(process.env[config.use_env_variable], {
logging: false,
});
在第一个选项中,您必须在第二段代码中以正确的顺序指定Sequelize所需的所有选项(数据库名称,用户,密码,然后选项),选择环境,然后根据环境应用配置你在