我有一个 alembic 迁移脚本,我想添加一些异常处理,但不确定最佳实践是什么。
基本上,我有几个问题需要处理:
- 已经进行了更改并且不需要(例如,如果我尝试添加_column,并且该列已经存在,我希望它继续)
- 表被锁定(如果我尝试对表执行某些操作并且它被锁定,我想引发异常)
其他例外?
def upgrade(): engine = op.get_bind().engine op.add_column('t_break_employee', sa.Column('auto', sa.Boolean())) op.add_column('t_employee', sa.Column('settings', sa.Text()))
我考虑过'with'
在每次更改时添加一个与语句一起使用的类。听起来合理吗?
例如:
def upgrade():
engine = op.get_bind().engine
with my_test():
op.add_column('t_break_employee', sa.Column('auto', sa.Boolean()))
with my_test():
op.add_column('t_employee', sa.Column('settings', sa.Text()))
在这种情况下,我需要处理哪些异常以及如何知道表是否被锁定?