我想在首次创建数据库时将某些默认值放入数据库中。是否有可用的钩子/函数,以便在创建数据库后只执行一次?
一种方法是使用检查器并检查表/数据库是否可用......然后在创建表之前设置一个标志。然后使用此标志插入默认值。
有更好的方法吗?
我想在首次创建数据库时将某些默认值放入数据库中。是否有可用的钩子/函数,以便在创建数据库后只执行一次?
一种方法是使用检查器并检查表/数据库是否可用......然后在创建表之前设置一个标志。然后使用此标志插入默认值。
有更好的方法吗?
我通常有一个专门install
为此目的调用的函数,因为我可以在这个函数中做任何我需要的事情。但是,如果您只想启动应用程序并执行此操作Base.metadata.create_all
,则可以使用该after_create
事件。您必须测试它是否给您一个metadata
对象或多个table
对象并相应地处理它。在这种情况下,您甚至可以获得一个connection
可用于插入数据的对象。根据事务管理和数据库支持,这甚至可能意味着如果插入失败,表创建会被回滚。
根据您的需要,两种方式都可以,但如果您确定只需要在创建后插入数据,那么事件方式实际上是最好的主意。