1 """Rename Block to BlockDocument and BlockSpec to BlockSchema
2
3 Revision ID: fd966d4ad99c
4 Revises: 71a57ec351d1
5 Create Date: 2022-04-19 11:48:31.878028
6
7 """
8
9 from alembic import op 1 ctx 1a
10
11 # revision identifiers, used by Alembic.
12 revision = "fd966d4ad99c" 1 ctx 1a
13 down_revision = "db6bde582447" 1 ctx 1a
14 branch_labels = None 1 ctx 1a
15 depends_on = None 1 ctx 1a
16
17
18 def upgrade ( ) : 1 ctx 1a
19 # First drop the foreign key constraints
20 with op . batch_alter_table ( "block" , schema = None ) as batch_op : 1 ctx 1a
21 batch_op . drop_constraint ( "fk_block__block_spec_id__block_spec" ) 1 ctx 1a
22
23 # Then rename the tables
24 op . rename_table ( "block_spec" , "block_schema" ) 1 ctx 1a
25 op . rename_table ( "block" , "block_document" ) 1 ctx 1a
26
27 # Handle indexes and column renames for block_document
28 with op . batch_alter_table ( "block_document" , schema = None ) as batch_op : 1 ctx 1a
29 # Drop indexes first
30 batch_op . drop_index ( "ix_block__is_default_storage_block" ) 1 ctx 1a
31 batch_op . drop_index ( "ix_block__name" ) 1 ctx 1a
32 batch_op . drop_index ( "ix_block__updated" ) 1 ctx 1a
33 batch_op . drop_index ( "uq_block__spec_id_name" ) 1 ctx 1a
34
35 # Rename columns
36 batch_op . alter_column ( "block_spec_id" , new_column_name = "block_schema_id" ) 1 ctx 1a
37 batch_op . alter_column ( 1 ctx 1a
38 "is_default_storage_block" ,
39 new_column_name = "is_default_storage_block_document" ,
40 )
41
42 # Create new indexes
43 with op . batch_alter_table ( "block_document" , schema = None ) as batch_op : 1 ctx 1a
44 batch_op . create_index ( 1 ctx 1a
45 batch_op . f ( "ix_block_document__is_default_storage_block_document" ) ,
46 [ "is_default_storage_block_document" ] ,
47 unique = False ,
48 )
49 batch_op . create_index ( 1 ctx 1a
50 batch_op . f ( "ix_block_document__name" ) , [ "name" ] , unique = False
51 )
52 batch_op . create_index ( 1 ctx 1a
53 batch_op . f ( "ix_block_document__updated" ) , [ "updated" ] , unique = False
54 )
55 batch_op . create_index ( 1 ctx 1a
56 "uq_block__schema_id_name" , [ "block_schema_id" , "name" ] , unique = True
57 )
58
59 # Re-create foreign key at the end
60 batch_op . create_foreign_key ( 1 ctx 1a
61 batch_op . f ( "fk_block__block_schema_id__block_schema" ) ,
62 "block_schema" ,
63 [ "block_schema_id" ] ,
64 [ "id" ] ,
65 ondelete = "cascade" ,
66 )
67
68 with op . batch_alter_table ( "block_schema" , schema = None ) as batch_op : 1 ctx 1a
69 batch_op . drop_index ( "ix_block_spec__type" ) 1 ctx 1a
70 batch_op . drop_index ( "ix_block_spec__updated" ) 1 ctx 1a
71 batch_op . drop_index ( "uq_block_spec__name_version" ) 1 ctx 1a
72 batch_op . create_index ( "ix_block_schema__type" , [ "type" ] , unique = False ) 1 ctx 1a
73 batch_op . create_index ( 1 ctx 1a
74 batch_op . f ( "ix_block_schema__updated" ) , [ "updated" ] , unique = False
75 )
76 batch_op . create_index ( 1 ctx 1a
77 "uq_block_schema__name_version" , [ "name" , "version" ] , unique = True
78 )
79 batch_op . drop_constraint ( "pk_block_spec" ) 1 ctx 1a
80 batch_op . create_primary_key ( "pk_block_schema" , [ "id" ] ) 1 ctx 1a
81
82 with op . batch_alter_table ( "block_document" , schema = None ) as batch_op : 1 ctx 1a
83 batch_op . create_primary_key ( "pk_block_document" , [ "id" ] ) 1 ctx 1a
84 batch_op . create_foreign_key ( 1 ctx 1a
85 batch_op . f ( "fk_block__block_schema_id__block_schema" ) ,
86 "block_schema" ,
87 [ "block_schema_id" ] ,
88 [ "id" ] ,
89 ondelete = "cascade" ,
90 )
91
92
93 def downgrade ( ) : 1 ctx 1a
94 op . rename_table ( "block_schema" , "block_spec" )
95 op . rename_table ( "block_document" , "block" )
96
97 with op . batch_alter_table ( "block" , schema = None ) as batch_op :
98 batch_op . drop_index ( "ix_block_document__is_default_storage_block_document" )
99 batch_op . drop_index ( "ix_block_document__name" )
100 batch_op . drop_index ( "ix_block_document__updated" )
101 batch_op . drop_index ( "uq_block__schema_id_name" )
102 batch_op . drop_constraint ( "fk_block__block_schema_id__block_schema" )
103 batch_op . drop_constraint ( "pk_block_document" )
104
105 with op . batch_alter_table ( "block" , schema = None ) as batch_op :
106 batch_op . alter_column ( "block_schema_id" , new_column_name = "block_spec_id" )
107 batch_op . alter_column (
108 "is_default_storage_block_document" ,
109 new_column_name = "is_default_storage_block" ,
110 )
111
112 with op . batch_alter_table ( "block" , schema = None ) as batch_op :
113 batch_op . create_index (
114 batch_op . f ( "ix_block__is_default_storage_block" ) ,
115 [ "is_default_storage_block" ] ,
116 unique = False ,
117 )
118 batch_op . create_index ( batch_op . f ( "ix_block__name" ) , [ "name" ] , unique = False )
119 batch_op . create_index (
120 batch_op . f ( "ix_block__updated" ) , [ "updated" ] , unique = False
121 )
122 batch_op . create_index (
123 "uq_block__spec_id_name" , [ "block_spec_id" , "name" ] , unique = True
124 )
125
126 with op . batch_alter_table ( "block_spec" , schema = None ) as batch_op :
127 batch_op . drop_index ( "ix_block_schema__type" )
128 batch_op . drop_index ( "ix_block_schema__updated" )
129 batch_op . drop_index ( "uq_block_schema__name_version" )
130 batch_op . create_index ( "ix_block_spec__type" , [ "type" ] , unique = False )
131 batch_op . create_index (
132 batch_op . f ( "ix_block_spec__updated" ) , [ "updated" ] , unique = False
133 )
134 batch_op . create_index (
135 "uq_block_spec__name_version" , [ "name" , "version" ] , unique = True
136 )
137 batch_op . drop_constraint ( "pk_block_schema" )
138 batch_op . create_primary_key ( "pk_block_spec" , [ "id" ] )
139
140 with op . batch_alter_table ( "block" , schema = None ) as batch_op :
141 batch_op . create_primary_key ( "pk_block_data" , [ "id" ] )
142 batch_op . create_foreign_key (
143 batch_op . f ( "fk_block__block_spec_id__block_spec" ) ,
144 "block_spec" ,
145 [ "block_spec_id" ] ,
146 [ "id" ] ,
147 ondelete = "cascade" ,
148 )