【发布时间】:2011-12-23 03:39:08
【问题描述】:
我想使用 Node.js 作为我的框架,但它没有很好的方法来管理 MySQL 模式和迁移。
我可以单独使用 SQLAlchemy 吗?只是为了同步表和创建列等等......?
然后在我的 node.js 上,我会不使用 SQLAlchemy 进行查询或插入...
这是推荐的吗?
【问题讨论】:
标签: mysql sql database node.js sqlalchemy
我想使用 Node.js 作为我的框架,但它没有很好的方法来管理 MySQL 模式和迁移。
我可以单独使用 SQLAlchemy 吗?只是为了同步表和创建列等等......?
然后在我的 node.js 上,我会不使用 SQLAlchemy 进行查询或插入...
这是推荐的吗?
【问题讨论】:
标签: mysql sql database node.js sqlalchemy
我使用SQLAlchemy-migrate 创建/更新/降级数据库模式。它允许您将架构设计为 SQLAlchemy 模型或普通 SQL 语句(或混合)。您在本地存储库中为架构创建升级/降级步骤的“版本”,然后将其应用于 SQLAlchemy 可以与之通信的任何数据库。
【讨论】:
虽然使用 SQLAlchemy 的迁移工具是个好主意,但节点的一些 ORM 实际上在处理迁移问题方面做得很合理。例如,Persistence JS 可以将数据库同步到您的 JS 文件中声明的属性。
话虽如此,我相信 SQLAlchemy 是一个很好的选择 - 它足够灵活,可以处理您可能会使用的任何数据库结构(与 Ruby 的 ActiveRecord 之类的东西不同,它会根据您的情况做出可能正确或不正确的假设) .
【讨论】:
是的,可以做到。虽然我没有任何特定于 Node.js 的经验,但我使用 SQLAlchemy 来:
仅使用它来设置数据库时的一个考虑因素是,默认情况下,您在模型中选择定义的任何级联或其他引用完整性细节都不会由 MySQL 本身强制执行。我知道可以使用passive_deletes 和passive_updates 选项让 后端句柄更新或删除级联,但我不知道是否或如何在后面自动创建这些规则通过 SQLAlchemy 结束。
【讨论】: