diff --git a/ckan/migration/env.py b/ckan/migration/env.py index 883d6773fba..3364cf50a9f 100644 --- a/ckan/migration/env.py +++ b/ckan/migration/env.py @@ -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 diff --git a/ckan/migration/versions/093_7f70d7d15445_remove_activity_revision_id.py b/ckan/migration/versions/093_7f70d7d15445_remove_activity_revision_id.py new file mode 100644 index 00000000000..481bf989e10 --- /dev/null +++ b/ckan/migration/versions/093_7f70d7d15445_remove_activity_revision_id.py @@ -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 ###