Skip to content

Commit

Permalink
Trial migration script. Include the legacy model, so the tables dont …
Browse files Browse the repository at this point in the history
…get deleted.
  • Loading branch information
David Read committed Nov 1, 2019
1 parent 5986f32 commit 777c36c
Show file tree
Hide file tree
Showing 2 changed files with 254 additions and 0 deletions.
4 changes: 4 additions & 0 deletions ckan/migration/env.py
Expand Up @@ -7,6 +7,10 @@
from ckan.model import init_model
from ckan.model.meta import metadata

# Include in the model the revision tables - otherwise
from ckan.migration.revision_legacy_code import RevisionTableMappings
RevisionTableMappings.instance()

# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config
Expand Down
@@ -0,0 +1,250 @@
"""Remove activity.revision_id
Revision ID: 7f70d7d15445
Revises: 01afcadbd8c0
Create Date: 2019-11-01 15:52:49.095301
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision = '7f70d7d15445'
down_revision = u'01afcadbd8c0'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index('idx_activity_object_id', table_name='activity')
op.drop_index('idx_activity_user_id', table_name='activity')
op.drop_column('activity', 'revision_id')
op.drop_index('idx_activity_detail_activity_id', table_name='activity_detail')
op.drop_index('idx_group_id', table_name='group')
op.drop_index('idx_group_name', table_name='group')
op.drop_index('idx_group_extra_group_id', table_name='group_extra')
op.drop_index('idx_group_extra_current', table_name='group_extra_revision')
op.drop_index('idx_group_extra_period', table_name='group_extra_revision')
op.drop_index('idx_group_extra_period_group', table_name='group_extra_revision')
op.create_foreign_key(None, 'group_extra_revision', 'group_extra', ['continuity_id'], ['id'])
op.drop_index('idx_group_current', table_name='group_revision')
op.drop_index('idx_group_period', table_name='group_revision')
op.drop_index('idx_extra_grp_id_pkg_id', table_name='member')
op.drop_index('idx_group_pkg_id', table_name='member')
op.drop_index('idx_package_group_group_id', table_name='member')
op.drop_index('idx_package_group_id', table_name='member')
op.drop_index('idx_package_group_pkg_id', table_name='member')
op.drop_index('idx_package_group_pkg_id_group_id', table_name='member')
op.drop_index('idx_member_continuity_id', table_name='member_revision')
op.drop_index('idx_package_group_current', table_name='member_revision')
op.drop_index('idx_package_group_period_package_group', table_name='member_revision')
op.drop_index('idx_package_creator_user_id', table_name='package')
op.drop_index('idx_pkg_id', table_name='package')
op.drop_index('idx_pkg_name', table_name='package')
op.drop_index('idx_pkg_rev_id', table_name='package')
op.drop_index('idx_pkg_sid', table_name='package')
op.drop_index('idx_pkg_sname', table_name='package')
op.drop_index('idx_pkg_srev_id', table_name='package')
op.drop_index('idx_pkg_stitle', table_name='package')
op.drop_index('idx_pkg_title', table_name='package')
op.drop_index('idx_extra_id_pkg_id', table_name='package_extra')
op.drop_index('idx_extra_pkg_id', table_name='package_extra')
op.drop_index('idx_package_extra_continuity_id', table_name='package_extra_revision')
op.drop_index('idx_package_extra_current', table_name='package_extra_revision')
op.drop_index('idx_package_extra_package_id', table_name='package_extra_revision')
op.drop_index('idx_package_extra_period', table_name='package_extra_revision')
op.drop_index('idx_package_extra_period_package', table_name='package_extra_revision')
op.drop_index('idx_package_extra_rev_id', table_name='package_extra_revision')
op.create_foreign_key(None, 'package_extra_revision', 'package_extra', ['continuity_id'], ['id'])
op.drop_index('idx_package_relationship_current', table_name='package_relationship_revision')
op.drop_index('idx_period_package_relationship', table_name='package_relationship_revision')
op.drop_index('idx_package_continuity_id', table_name='package_revision')
op.drop_index('idx_package_current', table_name='package_revision')
op.drop_index('idx_package_period', table_name='package_revision')
op.drop_index('idx_pkg_revision_id', table_name='package_revision')
op.drop_index('idx_pkg_revision_name', table_name='package_revision')
op.drop_index('idx_pkg_revision_rev_id', table_name='package_revision')
op.drop_index('idx_package_tag_id', table_name='package_tag')
op.drop_index('idx_package_tag_pkg_id', table_name='package_tag')
op.drop_index('idx_package_tag_pkg_id_tag_id', table_name='package_tag')
op.drop_index('idx_package_tag_tag_id', table_name='package_tag')
op.drop_index('idx_package_tag_continuity_id', table_name='package_tag_revision')
op.drop_index('idx_package_tag_current', table_name='package_tag_revision')
op.drop_index('idx_package_tag_revision_id', table_name='package_tag_revision')
op.drop_index('idx_package_tag_revision_pkg_id', table_name='package_tag_revision')
op.drop_index('idx_package_tag_revision_pkg_id_tag_id', table_name='package_tag_revision')
op.drop_index('idx_package_tag_revision_rev_id', table_name='package_tag_revision')
op.drop_index('idx_package_tag_revision_tag_id', table_name='package_tag_revision')
op.drop_index('idx_period_package_tag', table_name='package_tag_revision')
op.drop_index('idx_rating_id', table_name='rating')
op.drop_index('idx_rating_package_id', table_name='rating')
op.drop_index('idx_rating_user_id', table_name='rating')
op.alter_column('resource', 'package_id',
existing_type=sa.TEXT(),
nullable=True,
existing_server_default=sa.text(u"''::text"))
op.drop_index('idx_package_resource_id', table_name='resource')
op.drop_index('idx_package_resource_package_id', table_name='resource')
op.drop_index('idx_package_resource_url', table_name='resource')
op.create_foreign_key(None, 'resource', 'package', ['package_id'], ['id'])
op.drop_column('resource', 'webstore_last_updated')
op.drop_column('resource', 'webstore_url')
op.alter_column('resource_revision', 'package_id',
existing_type=sa.TEXT(),
nullable=True,
existing_server_default=sa.text(u"''::text"))
op.drop_index('idx_package_resource_rev_id', table_name='resource_revision')
op.drop_index('idx_resource_continuity_id', table_name='resource_revision')
op.drop_index('idx_resource_current', table_name='resource_revision')
op.drop_index('idx_resource_period', table_name='resource_revision')
op.create_foreign_key(None, 'resource_revision', 'package', ['package_id'], ['id'])
op.drop_column('resource_revision', 'webstore_last_updated')
op.drop_column('resource_revision', 'webstore_url')
op.drop_constraint(u'resource_view_resource_id_fkey', 'resource_view', type_='foreignkey')
op.create_foreign_key(None, 'resource_view', 'resource', ['resource_id'], ['id'])
op.drop_index('idx_rev_state', table_name='revision')
op.drop_index('idx_revision_author', table_name='revision')
op.alter_column('system_info', 'state',
existing_type=sa.TEXT(),
nullable=True,
existing_server_default=sa.text(u"'active'::text"))
op.alter_column('system_info_revision', 'state',
existing_type=sa.TEXT(),
nullable=True,
existing_server_default=sa.text(u"'active'::text"))
op.drop_index('idx_tag_id', table_name='tag')
op.drop_index('idx_tag_name', table_name='tag')
op.drop_index('term', table_name='term_translation')
op.drop_index('term_lang', table_name='term_translation')
op.drop_index('tracking_raw_access_timestamp', table_name='tracking_raw')
op.drop_index('tracking_raw_url', table_name='tracking_raw')
op.drop_index('tracking_raw_user_key', table_name='tracking_raw')
op.drop_index('tracking_summary_date', table_name='tracking_summary')
op.drop_index('tracking_summary_package_id', table_name='tracking_summary')
op.drop_index('tracking_summary_url', table_name='tracking_summary')
op.alter_column('user', 'state',
existing_type=sa.TEXT(),
nullable=True,
existing_server_default=sa.text(u"'active'::text"))
op.drop_index('idx_user_id', table_name='user')
op.drop_index('idx_user_name', table_name='user')
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_index('idx_user_name', 'user', ['name'], unique=False)
op.create_index('idx_user_id', 'user', ['id'], unique=False)
op.alter_column('user', 'state',
existing_type=sa.TEXT(),
nullable=False,
existing_server_default=sa.text(u"'active'::text"))
op.create_index('tracking_summary_url', 'tracking_summary', ['url'], unique=False)
op.create_index('tracking_summary_package_id', 'tracking_summary', ['package_id'], unique=False)
op.create_index('tracking_summary_date', 'tracking_summary', ['tracking_date'], unique=False)
op.create_index('tracking_raw_user_key', 'tracking_raw', ['user_key'], unique=False)
op.create_index('tracking_raw_url', 'tracking_raw', ['url'], unique=False)
op.create_index('tracking_raw_access_timestamp', 'tracking_raw', ['access_timestamp'], unique=False)
op.create_index('term_lang', 'term_translation', ['term', 'lang_code'], unique=False)
op.create_index('term', 'term_translation', ['term'], unique=False)
op.create_index('idx_tag_name', 'tag', ['name'], unique=False)
op.create_index('idx_tag_id', 'tag', ['id'], unique=False)
op.alter_column('system_info_revision', 'state',
existing_type=sa.TEXT(),
nullable=False,
existing_server_default=sa.text(u"'active'::text"))
op.alter_column('system_info', 'state',
existing_type=sa.TEXT(),
nullable=False,
existing_server_default=sa.text(u"'active'::text"))
op.create_index('idx_revision_author', 'revision', ['author'], unique=False)
op.create_index('idx_rev_state', 'revision', ['state'], unique=False)
op.drop_constraint(None, 'resource_view', type_='foreignkey')
op.create_foreign_key(u'resource_view_resource_id_fkey', 'resource_view', 'resource', ['resource_id'], ['id'], onupdate=u'CASCADE', ondelete=u'CASCADE')
op.add_column('resource_revision', sa.Column('webstore_url', sa.TEXT(), autoincrement=False, nullable=True))
op.add_column('resource_revision', sa.Column('webstore_last_updated', postgresql.TIMESTAMP(), autoincrement=False, nullable=True))
op.drop_constraint(None, 'resource_revision', type_='foreignkey')
op.create_index('idx_resource_period', 'resource_revision', ['revision_timestamp', 'expired_timestamp', 'id'], unique=False)
op.create_index('idx_resource_current', 'resource_revision', ['current'], unique=False)
op.create_index('idx_resource_continuity_id', 'resource_revision', ['continuity_id'], unique=False)
op.create_index('idx_package_resource_rev_id', 'resource_revision', ['revision_id'], unique=False)
op.alter_column('resource_revision', 'package_id',
existing_type=sa.TEXT(),
nullable=False,
existing_server_default=sa.text(u"''::text"))
op.add_column('resource', sa.Column('webstore_url', sa.TEXT(), autoincrement=False, nullable=True))
op.add_column('resource', sa.Column('webstore_last_updated', postgresql.TIMESTAMP(), autoincrement=False, nullable=True))
op.drop_constraint(None, 'resource', type_='foreignkey')
op.create_index('idx_package_resource_url', 'resource', ['url'], unique=False)
op.create_index('idx_package_resource_package_id', 'resource', ['package_id'], unique=False)
op.create_index('idx_package_resource_id', 'resource', ['id'], unique=False)
op.alter_column('resource', 'package_id',
existing_type=sa.TEXT(),
nullable=False,
existing_server_default=sa.text(u"''::text"))
op.create_index('idx_rating_user_id', 'rating', ['user_id'], unique=False)
op.create_index('idx_rating_package_id', 'rating', ['package_id'], unique=False)
op.create_index('idx_rating_id', 'rating', ['id'], unique=False)
op.create_index('idx_period_package_tag', 'package_tag_revision', ['revision_timestamp', 'expired_timestamp', 'package_id', 'tag_id'], unique=False)
op.create_index('idx_package_tag_revision_tag_id', 'package_tag_revision', ['tag_id'], unique=False)
op.create_index('idx_package_tag_revision_rev_id', 'package_tag_revision', ['revision_id'], unique=False)
op.create_index('idx_package_tag_revision_pkg_id_tag_id', 'package_tag_revision', ['tag_id', 'package_id'], unique=False)
op.create_index('idx_package_tag_revision_pkg_id', 'package_tag_revision', ['package_id'], unique=False)
op.create_index('idx_package_tag_revision_id', 'package_tag_revision', ['id'], unique=False)
op.create_index('idx_package_tag_current', 'package_tag_revision', ['current'], unique=False)
op.create_index('idx_package_tag_continuity_id', 'package_tag_revision', ['continuity_id'], unique=False)
op.create_index('idx_package_tag_tag_id', 'package_tag', ['tag_id'], unique=False)
op.create_index('idx_package_tag_pkg_id_tag_id', 'package_tag', ['tag_id', 'package_id'], unique=False)
op.create_index('idx_package_tag_pkg_id', 'package_tag', ['package_id'], unique=False)
op.create_index('idx_package_tag_id', 'package_tag', ['id'], unique=False)
op.create_index('idx_pkg_revision_rev_id', 'package_revision', ['revision_id'], unique=False)
op.create_index('idx_pkg_revision_name', 'package_revision', ['name'], unique=False)
op.create_index('idx_pkg_revision_id', 'package_revision', ['id'], unique=False)
op.create_index('idx_package_period', 'package_revision', ['revision_timestamp', 'expired_timestamp', 'id'], unique=False)
op.create_index('idx_package_current', 'package_revision', ['current'], unique=False)
op.create_index('idx_package_continuity_id', 'package_revision', ['continuity_id'], unique=False)
op.create_index('idx_period_package_relationship', 'package_relationship_revision', ['revision_timestamp', 'expired_timestamp', 'object_package_id', 'subject_package_id'], unique=False)
op.create_index('idx_package_relationship_current', 'package_relationship_revision', ['current'], unique=False)
op.drop_constraint(None, 'package_extra_revision', type_='foreignkey')
op.create_index('idx_package_extra_rev_id', 'package_extra_revision', ['revision_id'], unique=False)
op.create_index('idx_package_extra_period_package', 'package_extra_revision', ['revision_timestamp', 'expired_timestamp', 'package_id'], unique=False)
op.create_index('idx_package_extra_period', 'package_extra_revision', ['revision_timestamp', 'expired_timestamp', 'id'], unique=False)
op.create_index('idx_package_extra_package_id', 'package_extra_revision', ['package_id', 'current'], unique=False)
op.create_index('idx_package_extra_current', 'package_extra_revision', ['current'], unique=False)
op.create_index('idx_package_extra_continuity_id', 'package_extra_revision', ['continuity_id'], unique=False)
op.create_index('idx_extra_pkg_id', 'package_extra', ['package_id'], unique=False)
op.create_index('idx_extra_id_pkg_id', 'package_extra', ['id', 'package_id'], unique=False)
op.create_index('idx_pkg_title', 'package', ['title'], unique=False)
op.create_index('idx_pkg_stitle', 'package', ['title', 'state'], unique=False)
op.create_index('idx_pkg_srev_id', 'package', ['revision_id', 'state'], unique=False)
op.create_index('idx_pkg_sname', 'package', ['name', 'state'], unique=False)
op.create_index('idx_pkg_sid', 'package', ['id', 'state'], unique=False)
op.create_index('idx_pkg_rev_id', 'package', ['revision_id'], unique=False)
op.create_index('idx_pkg_name', 'package', ['name'], unique=False)
op.create_index('idx_pkg_id', 'package', ['id'], unique=False)
op.create_index('idx_package_creator_user_id', 'package', ['creator_user_id'], unique=False)
op.create_index('idx_package_group_period_package_group', 'member_revision', ['revision_timestamp', 'expired_timestamp', 'table_id', 'group_id'], unique=False)
op.create_index('idx_package_group_current', 'member_revision', ['current'], unique=False)
op.create_index('idx_member_continuity_id', 'member_revision', ['continuity_id'], unique=False)
op.create_index('idx_package_group_pkg_id_group_id', 'member', ['group_id', 'table_id'], unique=False)
op.create_index('idx_package_group_pkg_id', 'member', ['table_id'], unique=False)
op.create_index('idx_package_group_id', 'member', ['id'], unique=False)
op.create_index('idx_package_group_group_id', 'member', ['group_id'], unique=False)
op.create_index('idx_group_pkg_id', 'member', ['table_id'], unique=False)
op.create_index('idx_extra_grp_id_pkg_id', 'member', ['group_id', 'table_id'], unique=False)
op.create_index('idx_group_period', 'group_revision', ['revision_timestamp', 'expired_timestamp', 'id'], unique=False)
op.create_index('idx_group_current', 'group_revision', ['current'], unique=False)
op.drop_constraint(None, 'group_extra_revision', type_='foreignkey')
op.create_index('idx_group_extra_period_group', 'group_extra_revision', ['revision_timestamp', 'expired_timestamp', 'group_id'], unique=False)
op.create_index('idx_group_extra_period', 'group_extra_revision', ['revision_timestamp', 'expired_timestamp', 'id'], unique=False)
op.create_index('idx_group_extra_current', 'group_extra_revision', ['current'], unique=False)
op.create_index('idx_group_extra_group_id', 'group_extra', ['group_id'], unique=False)
op.create_index('idx_group_name', 'group', ['name'], unique=False)
op.create_index('idx_group_id', 'group', ['id'], unique=False)
op.create_index('idx_activity_detail_activity_id', 'activity_detail', ['activity_id'], unique=False)
op.add_column('activity', sa.Column('revision_id', sa.TEXT(), autoincrement=False, nullable=True))
op.create_index('idx_activity_user_id', 'activity', ['user_id', 'timestamp'], unique=False)
op.create_index('idx_activity_object_id', 'activity', ['object_id', 'timestamp'], unique=False)
# ### end Alembic commands ###

0 comments on commit 777c36c

Please sign in to comment.