ScoDoc/migrations/versions/d84bc592584e_extension_unaccent.py

78 lines
2.1 KiB
Python

"""Extension unaccent
Revision ID: d84bc592584e
Revises: b8df1b913c79
Create Date: 2023-06-01 13:46:52.927951
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.orm import sessionmaker # added by ev
# revision identifiers, used by Alembic.
revision = "d84bc592584e"
down_revision = "b8df1b913c79"
branch_labels = None
depends_on = None
Session = sessionmaker()
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
bind = op.get_bind()
session = Session(bind=bind)
# Ajout extension pour recherches sans accents:
session.execute(sa.text("""CREATE EXTENSION IF NOT EXISTS "unaccent";"""))
# Clé étrangère sur identite
session.execute(
sa.text(
"""UPDATE are_stages_apprentissages
SET etudid = NULL
WHERE are_stages_apprentissages.etudid NOT IN (
SELECT id
FROM Identite
);
"""
)
)
with op.batch_alter_table("are_stages_apprentissages", schema=None) as batch_op:
batch_op.create_foreign_key(
"are_stages_apprentissages_etudid_fkey",
"identite",
["etudid"],
["id"],
ondelete="CASCADE",
)
# Les montants de taxe en float:
with op.batch_alter_table("are_taxe_apprentissage", schema=None) as batch_op:
batch_op.alter_column(
"montant",
existing_type=sa.INTEGER(),
type_=sa.Float(),
existing_nullable=True,
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table("are_taxe_apprentissage", schema=None) as batch_op:
batch_op.alter_column(
"montant",
existing_type=sa.Float(),
type_=sa.INTEGER(),
existing_nullable=True,
)
with op.batch_alter_table("are_stages_apprentissages", schema=None) as batch_op:
batch_op.drop_constraint(
"are_stages_apprentissages_etudid_fkey", type_="foreignkey"
)
# ### end Alembic commands ###