Sequelize'方言需要从v4.0.0开始明确提供'

时间:2018-01-23 08:43:33

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

我需要在node.js环境中运行第三方应用程序,但是Sequelize抛出的'Dialect需要从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;

4 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:0)

这对我有用:

72

答案 2 :(得分:0)

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

您可以通过运行

轻松修复
 export NODE_ENV=development; npx sequelize db:migrate

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

答案 3 :(得分:0)

我想你已经解决了这个问题。但我遇到了同样的问题。 我的问题是由于 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')
};

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