Node.js没有用于管理MySQL模式/迁移的良好ORM ......所以我可以使用SQLAlchemy来管理它吗?

use*_*495 16 mysql database orm module node.js

我需要使用Node.js,但它对MySQL没有好的ORM.所以我打算使用SQLAlchemy来定义我的架构.然后使用node-mysql进行低级查询(当然,我无法使用SQLAlchemy的查询语言,因为它在python中.)

你们有什么感想?

sequelize似乎是最好的...但似乎很多人都没有使用它.那么,迁移呢?我该怎么处理?

node-orm似乎也不活跃.

对此的想法?

ale*_*lex 9

Sequelize对于MySQL 来说是非常好的ORM,并且具有出色的文档.您可以使用node-migrate进行迁移.

  • 我不同意,sequelize是一个非常好的ORM (21认同)
  • 我只是希望Sequelize不那么神奇.我想要很好的普通JavaScript对象.你甚至不能在Sequelize创建的'类'上使用`prototype`.你必须使用它的魔法'instanceMethods'废话.JS功能足够你不应该这样做. (9认同)
  • 不幸的是,续集迁移是一个笑话。如果您有一个琐碎的表并从命令行定义它,它将神奇地为其创建迁移,是的!但是,对于现实世界中的任何事情,它都是不可用的:关系?不,不支持。指数?不,不能。从现有模型生成迁移?不,不能。因此,您最终两次编写了所有内容:一次在模型中,一次在迁移中(但语法不同)。如果您搞砸了,那您就糟透了。 (3认同)

小智 5

我们在我们的Node项目中使用Sequelize.js,我想它完成了工作,但有些问题.一个例子是MySQL Sequelize查询引擎对你提供它的SQL字符串进行区分大小写的字符串匹配(this.sql.indexOf('SELECT')== 0).这意味着如果您的SQL恰好是小写,它可能会失败.SQL关键字通常不区分大小写(虽然大概是大写的)所以Sequelize实现看起来像是一个黑客.

Sequelize从版本1.3.0开始有迁移支持,但我没有使用它,我正在考虑自己编译.

我来自使用Ruby ActiveRecord ORM的背景,鉴于此和上面提到的问题,我对推荐Sequelize犹豫不决.不幸的是,我不知道有哪些更好的选择.

UPDATE1:在"我应该将哪个ORM用于Node.js和MySQL?"中提出了其他ORM..

UPDATE2:我在Github上发布了我的Sequelize.js迁移代码