"""Switched attachment id to UUID

Revision ID: 72df33816b21
Revises: d2227d2479e2
Create Date: 2022-04-26 21:50:05.466388

"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision = '72df33816b21'
down_revision = 'd2227d2479e2'
branch_labels = None
depends_on = None


def upgrade():
    # Create uuid-ossp extension, required to use uuid_generate_v4()
    op.execute('CREATE EXTENSION IF NOT EXISTS "uuid-ossp";')
    # /!\ This operation will break all attachments /!\
    op.execute("""ALTER TABLE attachment ALTER COLUMN id DROP DEFAULT,
        ALTER COLUMN id SET DATA TYPE UUID USING (uuid_generate_v4()),
        ALTER COLUMN id SET DEFAULT uuid_generate_v4();""")
    # ### end Alembic commands ###


def downgrade():
    # /!\ This operation will break all attachments /!\
    op.execute("""ALTER TABLE attachment ALTER COLUMN id DROP DEFAULT,
        ALTER COLUMN id SET DATA TYPE integer USING nextval('attachment_id_seq'::regclass),
        ALTER COLUMN id SET DEFAULT nextval('attachment_id_seq'::regclass);""")
    # ### end Alembic commands ###
