Sequelize 无法运行播种程序,因为在配置文件中未检测到方言(“错误:需要显式提供方言”)

问题描述 投票:0回答:1

我有一个使用

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
但我似乎没有在我错过的文档中看到任何内容。

请随意回答有关如何为我的种子文件播种的问题!谢谢:)

javascript node.js express sequelize.js sequelize-cli
1个回答
0
投票

很高兴看到您如何使用您的配置,根据您的设置,您应该有类似于下面的内容:

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所需的所有选项(数据库名称,用户,密码,然后选项),选择环境,然后根据环境应用配置你在

© www.soinside.com 2019 - 2024. All rights reserved.