salvi/alembic/versions/ebde30d24167_.py

312 lines
16 KiB
Python

"""empty message
Revision ID: ebde30d24167
Revises: ae0587e14725
Create Date: 2025-10-10 19:01:04.309127
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import mysql
# revision identifiers, used by Alembic.
revision: str = 'ebde30d24167'
down_revision: Union[str, None] = None
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('pagepolicy',
sa.Column('id', mysql.INTEGER(display_width=11), autoincrement=True, nullable=False),
sa.Column('page_id', mysql.INTEGER(display_width=11), autoincrement=False, nullable=True),
sa.Column('type', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False),
sa.Column('key_id', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False),
sa.Column('sitewide', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False),
sa.ForeignKeyConstraint(['key_id'], ['pagepolicykey.id'], name='pagepolicy_FK_0_0'),
sa.ForeignKeyConstraint(['page_id'], ['page.id'], name='pagepolicy_FK_1_0'),
sa.PrimaryKeyConstraint('id'),
mariadb_collate='utf8mb4_general_ci',
mariadb_default_charset='utf8mb4',
mariadb_engine='InnoDB'
)
op.create_index('pagepolicy_page_id_key_id', 'pagepolicy', ['page_id', 'key_id'], unique=True)
op.create_index('pagepolicy_page_id', 'pagepolicy', ['page_id'], unique=False)
op.create_index('pagepolicy_key_id', 'pagepolicy', ['key_id'], unique=False)
op.create_table('pagepolicykey',
sa.Column('id', mysql.INTEGER(display_width=11), autoincrement=True, nullable=False),
sa.Column('passphrase', mysql.VARCHAR(length=255), nullable=False),
sa.Column('sec_code', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False),
sa.PrimaryKeyConstraint('id'),
mariadb_collate='utf8mb4_general_ci',
mariadb_default_charset='utf8mb4',
mariadb_engine='InnoDB'
)
op.alter_column('page', 'title',
existing_type=mysql.VARCHAR(length=256),
nullable=True)
op.alter_column('page', 'touched',
existing_type=mysql.DATETIME(),
nullable=True)
op.alter_column('page', 'flags',
existing_type=mysql.BIGINT(display_width=20),
nullable=True)
op.drop_index('page_calendar', table_name='page')
op.drop_index('page_owner', table_name='page')
op.drop_index('page_title', table_name='page')
op.drop_index('page_touched', table_name='page')
op.create_index(op.f('ix_page_title'), 'page', ['title'], unique=False)
op.create_index(op.f('ix_page_touched'), 'page', ['touched'], unique=False)
op.alter_column('pagelink', 'from_page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.alter_column('pagelink', 'to_page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.drop_constraint('pagelink_ibfk_2', 'pagelink', type_='foreignkey')
op.drop_constraint('pagelink_ibfk_1', 'pagelink', type_='foreignkey')
op.create_foreign_key(None, 'pagelink', 'page', ['from_page_id'], ['id'])
op.create_foreign_key(None, 'pagelink', 'page', ['to_page_id'], ['id'])
op.alter_column('pagepermission', 'page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.alter_column('pagepermission', 'group_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.alter_column('pagepermission', 'permissions',
existing_type=mysql.BIGINT(display_width=20),
nullable=True)
op.drop_constraint('pagepermission_ibfk_4', 'pagepermission', type_='foreignkey')
op.drop_constraint('pagepermission_ibfk_5', 'pagepermission', type_='foreignkey')
op.create_foreign_key(None, 'pagepermission', 'usergroup', ['group_id'], ['id'])
op.create_foreign_key(None, 'pagepermission', 'page', ['page_id'], ['id'])
op.alter_column('pageproperty', 'page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.alter_column('pageproperty', 'key',
existing_type=mysql.VARCHAR(length=64),
nullable=True)
op.alter_column('pageproperty', 'value',
existing_type=mysql.VARCHAR(length=8000),
nullable=True)
op.alter_column('pagerevision', 'page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.alter_column('pagerevision', 'comment',
existing_type=mysql.VARCHAR(length=1024),
nullable=True)
op.alter_column('pagerevision', 'textref_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.alter_column('pagerevision', 'pub_date',
existing_type=mysql.DATETIME(),
nullable=True)
op.alter_column('pagerevision', 'length',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.drop_constraint('pagerevision_ibfk_1', 'pagerevision', type_='foreignkey')
op.drop_constraint('pagerevision_ibfk_2', 'pagerevision', type_='foreignkey')
op.drop_constraint('pagerevision_ibfk_3', 'pagerevision', type_='foreignkey')
op.create_foreign_key(None, 'pagerevision', 'pagetext', ['textref_id'], ['id'])
op.create_foreign_key(None, 'pagerevision', 'page', ['page_id'], ['id'])
op.create_foreign_key(None, 'pagerevision', 'user', ['user_id'], ['id'])
op.alter_column('pagetag', 'page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.alter_column('pagetag', 'name',
existing_type=mysql.VARCHAR(length=64),
nullable=True)
op.drop_constraint('pagetag_ibfk_1', 'pagetag', type_='foreignkey')
op.create_foreign_key(None, 'pagetag', 'page', ['page_id'], ['id'])
op.alter_column('pagetext', 'content',
existing_type=sa.BLOB(),
nullable=True)
op.alter_column('pagetext', 'flags',
existing_type=mysql.BIGINT(display_width=20),
nullable=True)
op.add_column('user', sa.Column('privileges', sa.BigInteger(), nullable=True))
op.add_column('user', sa.Column('restrictions', sa.BigInteger(), nullable=True))
op.alter_column('user', 'username',
existing_type=mysql.VARCHAR(length=32),
nullable=True)
op.alter_column('user', 'password',
existing_type=mysql.VARCHAR(length=255),
nullable=True)
op.alter_column('user', 'join_date',
existing_type=mysql.DATETIME(),
nullable=True)
op.alter_column('user', 'karma',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.drop_column('user', 'is_disabled')
op.drop_column('user', 'is_admin')
op.drop_column('user', 'color_theme')
op.alter_column('usergroup', 'name',
existing_type=mysql.VARCHAR(length=32),
nullable=True)
op.alter_column('usergroup', 'permissions',
existing_type=mysql.BIGINT(display_width=20),
nullable=True)
op.alter_column('usergroupmembership', 'user_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.alter_column('usergroupmembership', 'group_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=True)
op.alter_column('usergroupmembership', 'since',
existing_type=mysql.DATETIME(),
nullable=True)
op.drop_index('usergroupmembership_group_id', table_name='usergroupmembership')
op.drop_index('usergroupmembership_user_id', table_name='usergroupmembership')
# ### end Alembic commands ###
def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.create_index('usergroupmembership_user_id', 'usergroupmembership', ['user_id'], unique=False)
op.create_index('usergroupmembership_group_id', 'usergroupmembership', ['group_id'], unique=False)
op.alter_column('usergroupmembership', 'since',
existing_type=mysql.DATETIME(),
nullable=False)
op.alter_column('usergroupmembership', 'group_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.alter_column('usergroupmembership', 'user_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.alter_column('usergroup', 'permissions',
existing_type=mysql.BIGINT(display_width=20),
nullable=False)
op.alter_column('usergroup', 'name',
existing_type=mysql.VARCHAR(length=32),
nullable=False)
op.add_column('user', sa.Column('color_theme', mysql.SMALLINT(display_width=6), server_default=sa.text('0'), autoincrement=False, nullable=False))
op.add_column('user', sa.Column('is_admin', mysql.TINYINT(display_width=1), server_default=sa.text('0'), autoincrement=False, nullable=False))
op.add_column('user', sa.Column('is_disabled', mysql.TINYINT(display_width=1), server_default=sa.text('0'), autoincrement=False, nullable=False))
op.alter_column('user', 'karma',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.alter_column('user', 'join_date',
existing_type=mysql.DATETIME(),
nullable=False)
op.alter_column('user', 'password',
existing_type=mysql.VARCHAR(length=255),
nullable=False)
op.alter_column('user', 'username',
existing_type=mysql.VARCHAR(length=32),
nullable=False)
op.drop_column('user', 'restrictions')
op.drop_column('user', 'privileges')
op.alter_column('pagetext', 'flags',
existing_type=mysql.BIGINT(display_width=20),
nullable=False)
op.alter_column('pagetext', 'content',
existing_type=sa.BLOB(),
nullable=False)
op.drop_constraint(None, 'pagetag', type_='foreignkey')
op.create_foreign_key('pagetag_ibfk_1', 'pagetag', 'page', ['page_id'], ['id'], ondelete='CASCADE')
op.alter_column('pagetag', 'name',
existing_type=mysql.VARCHAR(length=64),
nullable=False)
op.alter_column('pagetag', 'page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.drop_constraint(None, 'pagerevision', type_='foreignkey')
op.drop_constraint(None, 'pagerevision', type_='foreignkey')
op.drop_constraint(None, 'pagerevision', type_='foreignkey')
op.create_foreign_key('pagerevision_ibfk_3', 'pagerevision', 'user', ['user_id'], ['id'], ondelete='SET NULL')
op.create_foreign_key('pagerevision_ibfk_2', 'pagerevision', 'page', ['page_id'], ['id'], ondelete='CASCADE')
op.create_foreign_key('pagerevision_ibfk_1', 'pagerevision', 'pagetext', ['textref_id'], ['id'], ondelete='CASCADE')
op.alter_column('pagerevision', 'length',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.alter_column('pagerevision', 'pub_date',
existing_type=mysql.DATETIME(),
nullable=False)
op.alter_column('pagerevision', 'textref_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.alter_column('pagerevision', 'comment',
existing_type=mysql.VARCHAR(length=1024),
nullable=False)
op.alter_column('pagerevision', 'page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.alter_column('pageproperty', 'value',
existing_type=mysql.VARCHAR(length=8000),
nullable=False)
op.alter_column('pageproperty', 'key',
existing_type=mysql.VARCHAR(length=64),
nullable=False)
op.alter_column('pageproperty', 'page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.drop_constraint(None, 'pagepermission', type_='foreignkey')
op.drop_constraint(None, 'pagepermission', type_='foreignkey')
op.create_foreign_key('pagepermission_ibfk_5', 'pagepermission', 'usergroup', ['group_id'], ['id'], ondelete='CASCADE')
op.create_foreign_key('pagepermission_ibfk_4', 'pagepermission', 'page', ['page_id'], ['id'], ondelete='CASCADE')
op.alter_column('pagepermission', 'permissions',
existing_type=mysql.BIGINT(display_width=20),
nullable=False)
op.alter_column('pagepermission', 'group_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.alter_column('pagepermission', 'page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.drop_constraint(None, 'pagelink', type_='foreignkey')
op.drop_constraint(None, 'pagelink', type_='foreignkey')
op.create_foreign_key('pagelink_ibfk_1', 'pagelink', 'page', ['to_page_id'], ['id'], ondelete='CASCADE')
op.create_foreign_key('pagelink_ibfk_2', 'pagelink', 'page', ['from_page_id'], ['id'], ondelete='CASCADE')
op.alter_column('pagelink', 'to_page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.alter_column('pagelink', 'from_page_id',
existing_type=mysql.INTEGER(display_width=11),
nullable=False)
op.drop_index(op.f('ix_page_touched'), table_name='page')
op.drop_index(op.f('ix_page_title'), table_name='page')
op.create_index('page_touched', 'page', ['touched'], unique=False)
op.create_index('page_title', 'page', ['title'], unique=False)
op.create_index('page_owner', 'page', ['owner_id'], unique=False)
op.create_index('page_calendar', 'page', ['calendar'], unique=False)
op.alter_column('page', 'flags',
existing_type=mysql.BIGINT(display_width=20),
nullable=False)
op.alter_column('page', 'touched',
existing_type=mysql.DATETIME(),
nullable=False)
op.alter_column('page', 'title',
existing_type=mysql.VARCHAR(length=256),
nullable=False)
op.create_table('upload',
sa.Column('id', mysql.INTEGER(display_width=11), autoincrement=True, nullable=False),
sa.Column('name', mysql.VARCHAR(length=256), nullable=False),
sa.Column('url_name', mysql.VARCHAR(length=256), nullable=True),
sa.Column('filetype', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False),
sa.Column('filesize', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False),
sa.Column('upload_date', mysql.DATETIME(), nullable=False),
sa.Column('md5', mysql.VARCHAR(length=32), nullable=False),
sa.PrimaryKeyConstraint('id'),
mariadb_collate='utf8mb4_general_ci',
mariadb_default_charset='utf8mb4',
mariadb_engine='InnoDB'
)
op.create_index('upload_upload_date', 'upload', ['upload_date'], unique=False)
op.create_index('upload_md5', 'upload', ['md5'], unique=False)
try:
## drop tables removed in 0.x
op.drop_table('pagepolicykey')
op.drop_index('pagepolicy_key_id', table_name='pagepolicy')
op.drop_index('pagepolicy_page_id', table_name='pagepolicy')
op.drop_index('pagepolicy_page_id_key_id', table_name='pagepolicy')
op.drop_table('pagepolicy')
op.drop_index('upload_md5', table_name='upload')
op.drop_index('upload_upload_date', table_name='upload')
op.drop_table('upload')
except Exception:
pass
# ### end Alembic commands ###