MariaDB 的 Sequelize 错误

Posted

技术标签:

【中文标题】MariaDB 的 Sequelize 错误【英文标题】:Sequelize error with MariaDB 【发布时间】:2016-06-18 05:48:39 【问题描述】:

我正在尝试将 sequelize 设置为我的 MariaDB 的 ORM。

这是我的设置:

var sequelize = require('sequelize');

var db= new sequelize('dbname', 'user', 'pass', 
  dialect: 'mariadb'
);

当我运行我的应用程序时,我收到以下错误:

/my/path/to/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:23
    throw new Error('Please install mysql package manually');
    ^

Error: Please install mysql package manually

为什么 sequelize 尝试连接到 mysql 而不是我在 dialect 指令中指定的 mariadb?我错过了什么吗?

【问题讨论】:

【参考方案1】:

Sequelize 现在有方言mariadb,不要使用mysql

npm install --save mariadb
npm install --save sequelize

Sequelize 连接代码...

var sequelize = new Sequelize('database', 'username', 'password', 
  dialect: 'mariadb'
)

【讨论】:

【参考方案2】:

Sequelize 内部使用相同的库来连接 MariaDB 或 MySQL,请查看文档 http://docs.sequelizejs.com/en/latest/docs/getting-started/ 专门在安装部分。

要让它工作,你只需要安装 mysql 包:

$ npm install --save mysql2

【讨论】:

我浏览了文档无数次...不知道我怎么没看到...谢谢!! mysql2 当前版本需要 @indospace.io 如果您认为答案不正确,请在 cmets 中说明或发布您自己的答案,但不要编辑其他人的答案。【参考方案3】:

前面的答案没有提到的是您还必须将方言设置为 MySQL...dialect: mysql 因为dialect: mariadb 不存在。

【讨论】:

【参考方案4】:

你必须使用 -g 安装 mysql 或任何方言。

npm i -g mysql

【讨论】:

以上是关于MariaDB 的 Sequelize 错误的主要内容,如果未能解决你的问题,请参考以下文章

Sequelize - 使用 MariaDB 的 where 子句中的地理位置

sequelize 中文教程

尝试使用 sequelize 创建迁移时出错

与 Sequelize 的交易不起作用

Sequelize js如何获取关联模型的平均值(聚合)

在 sequelize v6 中包含模型的问题排序 [已解决] - 这不是 sequelize 错误