From 75f03b17f48c79c7963fb4bc89a7745cea5e5feb Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 8 Sep 2023 14:19:28 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20chore(67cc006d50bf=5Fadd=5Fprofi?= =?UTF-8?q?le=5Fimage=5Fcolumn.py):=20refactor=20upgrade=20and=20downgrade?= =?UTF-8?q?=20functions=20to=20check=20if=20"user"=20table=20exists=20and?= =?UTF-8?q?=20if=20"profile=5Fimage"=20column=20is=20already=20present=20b?= =?UTF-8?q?efore=20adding=20or=20dropping=20the=20column=20respectively?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../67cc006d50bf_add_profile_image_column.py | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/backend/langflow/alembic/versions/67cc006d50bf_add_profile_image_column.py b/src/backend/langflow/alembic/versions/67cc006d50bf_add_profile_image_column.py index 5a3cbc448..ca0aa0542 100644 --- a/src/backend/langflow/alembic/versions/67cc006d50bf_add_profile_image_column.py +++ b/src/backend/langflow/alembic/versions/67cc006d50bf_add_profile_image_column.py @@ -10,7 +10,7 @@ from typing import Sequence, Union from alembic import op import sqlalchemy as sa import sqlmodel - +from sqlalchemy.engine.reflection import Inspector # revision identifiers, used by Alembic. revision: str = "67cc006d50bf" @@ -21,19 +21,29 @@ depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table("user", schema=None) as batch_op: - batch_op.add_column( - sa.Column( - "profile_image", sqlmodel.sql.sqltypes.AutoString(), nullable=True + 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: + batch_op.add_column( + sa.Column( + "profile_image", sqlmodel.sql.sqltypes.AutoString(), nullable=True + ) ) - ) # ### end Alembic commands ### def downgrade() -> None: # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table("user", schema=None) as batch_op: - batch_op.drop_column("profile_image") + 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: + batch_op.drop_column("profile_image") # ### end Alembic commands ###