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

我需要使用Node.js,但是它没有一个好的MySQL的ORM。 所以我打算使用SQLAlchemy来定义我的模式。 然后使用node-mysql做低级别的查询(当然,我不能使用SQLAlchemy的查询语言,因为它是用python的)。

你们有什么感想?

续集似乎是最好的…但似乎并不是很多人使用它。 另外,迁移呢? 我将如何处理?

node-orm似乎也不是很活跃。

对此有何想法?

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

我们在Node项目中使用了Sequelize.js,我猜这种工作可以完成,但有一些问题。 一个例子是MySQL Sequelize查询引擎在您提供的SQLstring上执行区分大小写的string匹配(this.sql.indexOf('SELECT')== 0)。 这意味着如果您的SQL恰好是小写字母,则可能会失败。 SQL关键字通常不区分大小写 (尽pipe按照惯例是大写),所以Sequelize实现看起来像是一个破解。

在1.3.6版本的Sequelize中有迁移支持,但我没有使用它,我正在考虑自己动手。

我来自于使用Ruby ActiveRecord ORM的背景,鉴于这一点以及上面提到的问题,我不愿意推荐Sequelize。 不幸的是,我不知道有什么更好的select。

UPDATE1:还有其他的ORM在“我应该用Node.js和MySQL哪个ORM? 。

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

我是js-core-data软件包的创build者,它仍然被认为是testing版(虽然我很less使用真正的项目)。 我很想听听开发者的一些想法和反馈:)

你可以使用light-ormmysql

  1. https://npmjs.org/package/light-orm – ORM包装
  2. https://npmjs.org/package/mysql – 驱动程序

Bookshelf.js也相当不错,但在某些方面不够灵活。 例如,您不能执行SQL请求并将结果转换为模型。 所以,请使用light-orm。

我最近创build了mysql-orm ,现在完全可以使用,尽pipe在我完全满意之前还有很长的路要走。

  • 它可以让你在JSON中定义模式。
  • 它可以让你用JSON定义初始数据。
  • 它会根据需要自动创build数据库和表。
  • 如果指定了自动创build的表,则从初始数据填充。
  • 您可以通过orm_options.logLevel=3告诉库将每个SQL命令logging到控制台以进行诊断。

它使用后端的felixge / mysql包与MySQL进行通信。

与续集相比,它需要相当less的代码才能运行,但function也稍差。

免责声明:我是作者(如果不是很明显)