如何使用sqlalchemy中的默认值初始化数据库?

时间:2013-09-28 14:07:57

标签: python-3.x sqlalchemy

我想在首次创建时将某些默认值放在数据库中。 是否有可用的钩子/函数,因此它在创建db后只执行一次?

一种方法是使用Inspector并检查表/ db是否可用...然后在创建表之前设置一个标志。然后使用此标志插入默认值。

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我通常有一个专门用于此目的的install函数,因为我可以在此函数中执行任何我需要的操作。但是,如果您只想启动应用程序并执行Base.metadata.create_all,则可以使用after_create事件。您必须测试它是否为您提供了一个metadata个对象或多个table对象并相应地处理它们。在此上下文中,您甚至可以使用connection对象来插入数据。根据事务管理和数据库支持,这甚至可能意味着如果插入失败,则会回滚表创建。

根据您的需要,两种方式都可以,但如果您确定您只需要在创建后插入数据,那么事件方式实际上是最好的想法。