gmao/migrations/versions/g2b3c4d5e6f7_assign_admin_tasks_to_user.py

36 lines
1.2 KiB
Python
Raw Normal View History

"""Rattacher les tâches administratives à un technicien."""
from alembic import op
import sqlalchemy as sa
revision = "g2b3c4d5e6f7"
down_revision = "g1a2b3c4d5e6"
branch_labels = None
depends_on = None
def _columns(bind):
return {item["name"] for item in sa.inspect(bind).get_columns("admin_tasks")}
def upgrade():
bind = op.get_bind()
if "user_id" not in _columns(bind):
op.add_column("admin_tasks", sa.Column("user_id", sa.Integer(), nullable=True))
op.create_index("ix_admin_tasks_user_id", "admin_tasks", ["user_id"])
op.create_foreign_key(
"fk_admin_tasks_user_id_users", "admin_tasks", "users", ["user_id"], ["id"]
)
def downgrade():
bind = op.get_bind()
if "user_id" in _columns(bind):
inspector = sa.inspect(bind)
if "ix_admin_tasks_user_id" in {item["name"] for item in inspector.get_indexes("admin_tasks")}:
op.drop_index("ix_admin_tasks_user_id", table_name="admin_tasks")
if "fk_admin_tasks_user_id_users" in {item["name"] for item in inspector.get_foreign_keys("admin_tasks")}:
op.drop_constraint("fk_admin_tasks_user_id_users", "admin_tasks", type_="foreignkey")
op.drop_column("admin_tasks", "user_id")