gpt4 book ai didi

python - 如何处理alembic迁移中的异常?

转载 作者:太空宇宙 更新时间:2023-11-03 18:21:23 25 4
gpt4 key购买 nike

我有一个 alembic 迁移脚本,我想添加一些异常处理,但不确定什么是最佳实践。

基本上,我有几个问题需要处理:

  1. 已经进行了更改,但不需要(例如,如果我尝试add_column,并且此列已经存在,我希望它继续)
  2. 表被锁定(如果我尝试在表上执行某些操作并且它已被锁定,我想引发异常)
  3. 其他异常(exception)情况?

    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()))

在这种情况下,我需要处理哪些异常以及如何知道表是否被锁定?

最佳答案

我并不是指您使用的 API 的具体问题,但我不鼓励您采用这种方法。

真正的迁移有两个结果:

  • 迁移确实成功申请
  • 数据库处于迁移之前的状态(因此存在某种错误)。

处理错误的正确方法是修复迁移。您的方法允许第三种迁移结果:

  • 迁移确实失败,但应用了一些更改

这会导致架构损坏,这是一件坏事!

关于python - 如何处理alembic迁移中的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24075988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com