"""update_moments_taxonomy Revision ID: 962eab0e994b Revises: b3d99035eefa Create Date: 2021-01-21 08:23:51.330316 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = '962eab0e994b' down_revision = 'b3d99035eefa' branch_labels = None depends_on = None moments_groups = [ {"id": 1, "name": "Personal Life"}, {"id": 2, "name": "Achievements"}, {"id": 3, "name": "Culture"}, {"id": 4, "name": "Anniversary"}, {"id": 5, "name": "Releases"}, {"id": 6, "name": "Appearance"}, {"id": 7, "name": "Family Life"}, {"id": 8, "name": "Traditions"}, ] moments_types = [ # Personal Life {"id": 1, "name": "Death", "group_id": 1}, {"id": 2, "name": "Dating", "group_id": 1}, {"id": 3, "name": "Engagement", "group_id": 1}, {"id": 4, "name": "Divorce", "group_id": 1}, # Achievements {"id": 5, "name": "Award Show", "group_id": 2}, {"id": 6, "name": "Award Nomination", "group_id": 2}, {"id": 7, "name": "RIAA Certification", "group_id": 2}, {"id": 8, "name": "BPI Certificate", "group_id": 2}, {"id": 9, "name": "Streaming Milestone", "group_id": 2}, {"id": 10, "name": "Top Chart", "group_id": 2}, {"id": 11, "name": "Top Playlist", "group_id": 2}, # Culture {"id": 12, "name": "Viral Mention", "group_id": 3}, {"id": 13, "name": "Brand Collaboration", "group_id": 3}, {"id": 14, "name": "Political Mention", "group_id": 3}, {"id": 15, "name": "Reactive Sync", "group_id": 3}, # Anniversary {"id": 16, "name": "Release Anniversary", "group_id": 4}, {"id": 17, "name": "Death Anniversary", "group_id": 4}, {"id": 18, "name": "Birthday", "group_id": 4}, # Releases {"id": 19, "name": "Single Release", "group_id": 5}, {"id": 20, "name": "Album Release", "group_id": 5}, {"id": 21, "name": "Music Video Release", "group_id": 5}, {"id": 22, "name": "Teaser Release", "group_id": 5}, {"id": 23, "name": "Brand Appearance", "group_id": 5}, # Appearances {"id": 24, "name": "Brand Appearance", "group_id": 6}, {"id": 25, "name": "Festival Appearance", "group_id": 6}, {"id": 26, "name": "In Store Appearance", "group_id": 6}, {"id": 27, "name": "Major Appearance", "group_id": 6}, {"id": 28, "name": "Online Appearance", "group_id": 6}, {"id": 29, "name": "Pop Up Appearance", "group_id": 6}, {"id": 30, "name": "Press Appearance", "group_id": 6}, {"id": 31, "name": "Radio Appearance", "group_id": 6}, {"id": 32, "name": "Satellite Tour", "group_id": 6}, {"id": 33, "name": "Tour Announcement", "group_id": 6}, {"id": 34, "name": "Tour Date", "group_id": 6}, {"id": 35, "name": "Tour Support", "group_id": 6}, {"id": 36, "name": "TV Appearance", "group_id": 6}, #Family Life {"id": 37, "name": "Marriage", "group_id": 7}, {"id": 38, "name": "Child Birthday", "group_id": 7}, {"id": 39, "name": "Child Announcement", "group_id": 7}, {"id": 40, "name": "Celebration", "group_id": 7}, #Traditions {"id": 41, "name": "Holiday", "group_id": 8}, {"id": 42, "name": "Season", "group_id": 8}, ] def get_table(bind, table_name: str): meta = sa.MetaData(bind=bind) meta.reflect() return meta.tables[table_name] def upgrade(): bind = op.get_bind() bind.execute(""" TRUNCATE "ArtistMoment", "ArtistMomentType", "ArtistMomentTypeGroup" RESTART IDENTITY CASCADE; """) artist_moment_type_group_table = get_table(bind, "ArtistMomentTypeGroup") artist_moment_type_table = get_table(bind, "ArtistMomentType") op.bulk_insert(artist_moment_type_group_table, moments_groups) op.bulk_insert(artist_moment_type_table, moments_types) old_moments_groups = [ {"id": 1, "name": "Appearance"}, {"id": 2, "name": "Family Life"}, {"id": 3, "name": "Traditions"}, ] old_moments_types = [ {"id": 1, "name": "Online Appearance", "group_id": 1}, {"id": 2, "name": "Festival Appearance", "group_id": 1}, {"id": 3, "name": "Radio Appearance", "group_id": 1}, {"id": 4, "name": "Pop Up Appearance", "group_id": 1}, {"id": 5, "name": "TV Appearance", "group_id": 1}, {"id": 6, "name": "Tour Announcement", "group_id": 1}, {"id": 7, "name": "Tour Date", "group_id": 1}, {"id": 8, "name": "Tour Support Date", "group_id": 1}, {"id": 9, "name": "Brand Appearance", "group_id": 1}, {"id": 10, "name": "Major Appearance", "group_id": 1}, {"id": 11, "name": "Custom Appearance", "group_id": 1}, {"id": 12, "name": "Marriage", "group_id": 2}, {"id": 13, "name": "Child Birthday", "group_id": 2}, {"id": 14, "name": "Child Announcement", "group_id": 2}, {"id": 15, "name": "Celebration", "group_id": 2}, {"id": 16, "name": "Custom Family", "group_id": 2}, {"id": 17, "name": "Holiday", "group_id": 3}, {"id": 18, "name": "Season", "group_id": 3}, {"id": 19, "name": "Custom Tradition", "group_id": 3}, ] def downgrade(): bind = op.get_bind() bind.execute(""" TRUNCATE "ArtistMoment", "ArtistMomentType", "ArtistMomentTypeGroup" RESTART IDENTITY CASCADE; """) artist_moment_type_group_table = get_table(bind, "ArtistMomentTypeGroup") artist_moment_type_table = get_table(bind, "ArtistMomentType") op.bulk_insert(artist_moment_type_group_table, old_moments_groups) op.bulk_insert(artist_moment_type_table, old_moments_types)