我需要在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;
答案 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