Pony ORM在创建数据库之前定义Entity子类

时间:2017-07-19 21:32:43

标签: python inheritance orm pony ponyorm

我正在创建一个包含Bot类的库。我希望它能够在小马orm的帮助下在sql数据库中存储消息日志和一些其他信息。想法是让机器人接受数据库的路径并创建它或连接到它(如果它已经存在)。

可悲的是,似乎使用pony我只能在创建数据库对象后定义类,需要从database.Entity类继承以将我的类绑定到数据库。

明显的解决方案是在创建数据库之后定义Bot类构造函数中的所有类,但在结构方面看起来相当丑陋,因为我计划这些类非常大,并希望将它们存储在单独的文件中

其他假设方式是遵循(但我不知道是否支持该功能):

from pony import orm

class Message(orm.Entity): 
  text = orm.Required(unicode)

class Database(orm.Database):
  def __init__(self, path):
    # super(..).__init__(..)
    # bind Message to self

class Bot(object):
  def __init__(self, path):
    self.database = Database(path)

另一种可能的假设方式是,如果我可以从Database.Entity继承。

有什么想法吗?也许我可以用SQLAlchemy等其他ORM来实现这个目标吗?

0 个答案:

没有答案