🔧 chore(67cc006d50bf_add_profile_image_column.py): refactor upgrade and downgrade functions to check if "user" table exists and if "profile_image" column is already present before adding or dropping the column respectively

This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-09-08 14:19:28 -03:00
commit 75f03b17f4

View file

@ -10,7 +10,7 @@ from typing import Sequence, Union
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa
import sqlmodel import sqlmodel
from sqlalchemy.engine.reflection import Inspector
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision: str = "67cc006d50bf" revision: str = "67cc006d50bf"
@ -21,6 +21,11 @@ depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None: def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ### # ### commands auto generated by Alembic - please adjust! ###
conn = op.get_bind()
inspector = Inspector.from_engine(conn)
if "user" in inspector.get_table_names() and "profile_image" not in [
column["name"] for column in inspector.get_columns("user")
]:
with op.batch_alter_table("user", schema=None) as batch_op: with op.batch_alter_table("user", schema=None) as batch_op:
batch_op.add_column( batch_op.add_column(
sa.Column( sa.Column(
@ -33,6 +38,11 @@ def upgrade() -> None:
def downgrade() -> None: def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ### # ### commands auto generated by Alembic - please adjust! ###
conn = op.get_bind()
inspector = Inspector.from_engine(conn)
if "user" in inspector.get_table_names() and "profile_image" in [
column["name"] for column in inspector.get_columns("user")
]:
with op.batch_alter_table("user", schema=None) as batch_op: with op.batch_alter_table("user", schema=None) as batch_op:
batch_op.drop_column("profile_image") batch_op.drop_column("profile_image")