【发布时间】:2018-03-16 16:19:40
【问题描述】:
我刚刚继承了一个非常旧的应用程序(建立在 Windows 95 上 - 适用于鉴赏家的 Magic7),现在支持最近的 mssql db (2012)。这不是它最初设计的数据库系统,因此它带有一些非常奇怪的表设计。
我正在寻找一个 python ORM 来帮助我轻松地与这个东西交谈。也就是说,我正在使用一个 ORM,它可以轻松地合并 2 个表,就好像它们是一个表一样。
例如,我可能有表 BILLS 和 BILLS_HISTORY,它们具有不同的列名,甚至可能具有不同的列类型,严格来说不同,但语义上包含相同的信息(相同的列数,语义上相同的值)。
我正在寻找一种 ORM,它允许我只定义一个 Bill 对象,映射到两个表,并为我提供正确的钩子来决定事情的去向,以及在需要调整时如何编写它们。
另一个例子:假设我有一个对象叫好。如果一件商品已完成,则进入 GOODS 表,如果尚未完成,则进入 GOODS_UNFINISHED 表。我正在寻找一个可以读取两个表的商品对象,并根据它来自哪个表来给我一个设置为正确值的完成属性(如果设置了属性,则使用钩子将其从一个表更改为另一个表以某种方式)。
我对 python 很好,但我之前没有做过太多这样的数据库工作,所以我的知识有限。我可以并且最终可能会编写自己量身定制的 ORM,但这似乎是浪费时间,因为这些东西将在 6 个月内完全过渡到新的东西时被丢弃。有谁知道具有这种功能的 ORM 吗?我打算学习 ponyORM 和 SQLAlchemy,但我感觉需要几天时间才能得出结论,它们是否适合我的用例。所以我想我也会问社区...
干杯
【问题讨论】:
标签: python python-3.x orm sqlalchemy ponyorm