修复迁移幂等并补部署检查
This commit is contained in:
@@ -19,10 +19,18 @@ depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# 添加 is_locked 字段到 studies 表
|
||||
op.add_column('studies', sa.Column('is_locked', sa.Boolean(), nullable=False, server_default='false'))
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
columns = {col["name"] for col in inspector.get_columns("studies")}
|
||||
|
||||
if "is_locked" not in columns:
|
||||
op.add_column("studies", sa.Column("is_locked", sa.Boolean(), nullable=False, server_default="false"))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# 删除 is_locked 字段
|
||||
op.drop_column('studies', 'is_locked')
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
columns = {col["name"] for col in inspector.get_columns("studies")}
|
||||
|
||||
if "is_locked" in columns:
|
||||
op.drop_column("studies", "is_locked")
|
||||
|
||||
@@ -19,10 +19,18 @@ depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# 添加 enrollment_target 字段到 sites 表
|
||||
op.add_column('sites', sa.Column('enrollment_target', sa.Integer(), nullable=True))
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
columns = {col["name"] for col in inspector.get_columns("sites")}
|
||||
|
||||
if "enrollment_target" not in columns:
|
||||
op.add_column("sites", sa.Column("enrollment_target", sa.Integer(), nullable=True))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# 删除 enrollment_target 字段
|
||||
op.drop_column('sites', 'enrollment_target')
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
columns = {col["name"] for col in inspector.get_columns("sites")}
|
||||
|
||||
if "enrollment_target" in columns:
|
||||
op.drop_column("sites", "enrollment_target")
|
||||
|
||||
@@ -19,18 +19,31 @@ depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column(
|
||||
"adverse_events",
|
||||
sa.Column("is_sae", sa.Boolean(), nullable=False, server_default=sa.false()),
|
||||
)
|
||||
op.add_column(
|
||||
"adverse_events",
|
||||
sa.Column("is_susar", sa.Boolean(), nullable=False, server_default=sa.false()),
|
||||
)
|
||||
op.alter_column("adverse_events", "is_sae", server_default=None)
|
||||
op.alter_column("adverse_events", "is_susar", server_default=None)
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
columns = {col["name"] for col in inspector.get_columns("adverse_events")}
|
||||
|
||||
if "is_sae" not in columns:
|
||||
op.add_column(
|
||||
"adverse_events",
|
||||
sa.Column("is_sae", sa.Boolean(), nullable=False, server_default=sa.false()),
|
||||
)
|
||||
if "is_susar" not in columns:
|
||||
op.add_column(
|
||||
"adverse_events",
|
||||
sa.Column("is_susar", sa.Boolean(), nullable=False, server_default=sa.false()),
|
||||
)
|
||||
if "is_sae" in columns or "is_susar" in columns:
|
||||
op.alter_column("adverse_events", "is_sae", server_default=None)
|
||||
op.alter_column("adverse_events", "is_susar", server_default=None)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_column("adverse_events", "is_susar")
|
||||
op.drop_column("adverse_events", "is_sae")
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
columns = {col["name"] for col in inspector.get_columns("adverse_events")}
|
||||
|
||||
if "is_susar" in columns:
|
||||
op.drop_column("adverse_events", "is_susar")
|
||||
if "is_sae" in columns:
|
||||
op.drop_column("adverse_events", "is_sae")
|
||||
|
||||
Reference in New Issue
Block a user