Sequelize '方言需要从 v4.0.0 开始明确提供'
Posted
技术标签:
【中文标题】Sequelize \'方言需要从 v4.0.0 开始明确提供\'【英文标题】: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;
【问题讨论】:
【参考方案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
【讨论】:
以上是关于Sequelize '方言需要从 v4.0.0 开始明确提供'的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS/Sequelize/MySQL - 为啥需要 postgres 依赖项?