【问题标题】:Sequelize 'Dialect needs to be explicitly supplied as of v4.0.0'Sequelize '方言需要从 v4.0.0 开始明确提供'
【发布时间】:2018-07-02 00:25:53
【问题描述】:

我需要在 node.js 环境中运行第三方应用程序,但 Sequelize 抛出“方言需要从 v4.0.0 起显式提供” 我在这里Dialect needs to be explicitly supplied as of v4.0.0 找到了类似的主题,但“export NODE_ENV=development”不起作用,我找不到 Sequelize 配置文件。 我该如何解决这个错误?

代码如下:

const Sequelize = require('sequelize');

const scheme = require('./scheme');

const Op = Sequelize.Op;

const sequelize = new Sequelize(null, null, {

dialect: 'sqlite',
storage: 'db.sqlite3',

operatorsAliases: { $and: Op.and },

logging: false
});

scheme(sequelize);
sequelize.sync();

module.exports.sequelize = sequelize;
module.exports.models = sequelize.models;

【问题讨论】:

    标签: node.js error-handling sequelize.js


    【解决方案1】:

    初始化sequelize时只需提供方言;

    const sequelize = new Sequelize('database', 'username', 'password', {
      host: 'localhost',
      dialect: // pick one of 'mysql','sqlite','postgres','mssql',
    });
    

    【讨论】:

    • 是的,你在方言的选项之前传递了两个参数。其中需要三个。看我的帖子
    【解决方案2】:

    节点在配置文件中找不到要加载的环境。

    你可以通过运行这个来轻松修复

     export NODE_ENV=development; npx sequelize db:migrate
    

    这应该将运行它所需的环境导出到 NODE_ENV。

    【讨论】:

      【解决方案3】:

      这对我有用:

      'use strict';
      
      const path = require('path');
      const Sequelize = require('sequelize');
      const db = {};
      
      const DB = 'users';
      const USER = 'user';
      const PASSWORD = 'password';
      const HOST = 'host';
      const DIALECT = 'postgres';
      const PORT = 5432;
      
      const CONNECTION = new Sequelize(
          DB,
          USER, 
          PASSWORD, 
          {
              host: HOST,
              dialect: DIALECT,
              port: PORT,
          }
      )
      
      module.exports.CONNECTION = CONNECTION;
      

      【讨论】:

        【解决方案4】:

        我想你已经解决了这个问题。但我面临同样的问题。 我的问题是由于 sequelize-cli 自动生成的配置文件的名称更改而发生的。所以我最终所做的是,我在项目根文件夹中创建了一个 .sequelizerc 文件,并包含以下内容。

        const path = require('path');
        
        module.exports = {
          'config': path.resolve('config', 'database.json'),
          'models-path': path.resolve('db', 'models'),
          'seeders-path': path.resolve('db', 'seeders'),
          'migrations-path': path.resolve('db', 'migrations')
        };
        

        确保根据项目的文件夹结构更改参数。 sequelize 文档页面上有全面的解释。 https://sequelize.org/master/manual/migrations.html

        【讨论】:

          猜你喜欢
          • 2018-03-23
          • 2021-03-30
          • 2017-10-05
          • 1970-01-01
          • 2021-11-10
          • 1970-01-01
          • 2014-11-13
          • 1970-01-01
          • 2019-02-09
          相关资源
          最近更新 更多