【问题标题】:Can SQLAlchemy be used on its own, independent of framework, and is this recommended?SQLAlchemy 可以单独使用,独立于框架,是否推荐?
【发布时间】:2011-12-23 03:39:08
【问题描述】:

我想使用 Node.js 作为我的框架,但它没有很好的方法来管理 MySQL 模式和迁移。

我可以单独使用 SQLAlchemy 吗?只是为了同步表和创建列等等......?

然后在我的 node.js 上,我会使用 SQLAlchemy 进行查询或插入...

这是推荐的吗?

【问题讨论】:

    标签: mysql sql database node.js sqlalchemy


    【解决方案1】:

    我使用SQLAlchemy-migrate 创建/更新/降级数据库模式。它允许您将架构设计为 SQLAlchemy 模型或普通 SQL 语句(或混合)。您在本地存储库中为架构创建升级/降级步骤的“版本”,然后将其应用于 SQLAlchemy 可以与之通信的任何数据库。

    【讨论】:

      【解决方案2】:

      虽然使用 SQLAlchemy 的迁移工具是个好主意,但节点的一些 ORM 实际上在处理迁移问题方面做得很合理。例如,Persistence JS 可以将数据库同步到您的 JS 文件中声明的属性。

      话虽如此,我相信 SQLAlchemy 是一个很好的选择 - 它足够灵活,可以处理您可能会使用的任何数据库结构(与 Ruby 的 ActiveRecord 之类的东西不同,它会根据您的情况做出可能正确或不正确的假设) .

      【讨论】:

        【解决方案3】:

        是的,可以做到。虽然我没有任何特定于 Node.js 的经验,但我使用 SQLAlchemy 来:

        • 为非 SQLAlchemy 应用程序设置小型数据库。
        • 查询、更新和迁移不是使用 SQLAlchemy 创建的数据库。
        • 将使用 SQLAlchemy 的新应用程序连接到现有 MySQL 数据库。

        仅使用它来设置数据库时的一个考虑因素是,默认情况下,您在模型中选择定义的任何级联或其他引用完整性细节都不会由 MySQL 本身强制执行。我知道可以使用passive_deletespassive_updates 选项 后端句柄更新或删除级联,但我不知道是否或如何在后面自动创建这些规则通过 SQLAlchemy 结束。

        【讨论】:

          猜你喜欢
          • 2011-03-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-18
          • 2018-07-15
          相关资源
          最近更新 更多