@@ -58,35 +58,73 @@ def upgrade() -> None:
5858 """ )
5959
6060 # Resize columns to String(191)
61- op .alter_column (
62- 'gateways' ,
63- 'slug' ,
64- existing_type = sa .String (length = 255 ),
65- type_ = sa .String (length = 191 ),
66- existing_nullable = False
67- )
68- op .alter_column (
69- 'gateways' ,
70- 'url' ,
71- existing_type = sa .String (length = 767 ),
72- type_ = sa .String (length = 191 ),
73- existing_nullable = False
74- )
61+ # SQLite requires batch operations for ALTER COLUMN
62+ if dialect_name == 'sqlite' :
63+ with op .batch_alter_table ('gateways' , schema = None ) as batch_op :
64+ batch_op .alter_column (
65+ 'slug' ,
66+ existing_type = sa .String (length = 255 ),
67+ type_ = sa .String (length = 191 ),
68+ existing_nullable = False
69+ )
70+ batch_op .alter_column (
71+ 'url' ,
72+ existing_type = sa .String (length = 767 ),
73+ type_ = sa .String (length = 191 ),
74+ existing_nullable = False
75+ )
76+ else :
77+ # PostgreSQL and MySQL support direct ALTER COLUMN
78+ op .alter_column (
79+ 'gateways' ,
80+ 'slug' ,
81+ existing_type = sa .String (length = 255 ),
82+ type_ = sa .String (length = 191 ),
83+ existing_nullable = False
84+ )
85+ op .alter_column (
86+ 'gateways' ,
87+ 'url' ,
88+ existing_type = sa .String (length = 767 ),
89+ type_ = sa .String (length = 191 ),
90+ existing_nullable = False
91+ )
7592
7693
7794def downgrade () -> None :
7895 """Downgrade schema."""
79- op .alter_column (
80- 'gateways' ,
81- 'slug' ,
82- existing_type = sa .String (length = 191 ),
83- type_ = sa .String (length = 255 ),
84- existing_nullable = False
85- )
86- op .alter_column (
87- 'gateways' ,
88- 'url' ,
89- existing_type = sa .String (length = 191 ),
90- type_ = sa .String (length = 767 ),
91- existing_nullable = False
92- )
96+ # Get database dialect for dialect-specific operations
97+ bind = op .get_bind ()
98+ dialect_name = bind .dialect .name
99+
100+ # SQLite requires batch operations for ALTER COLUMN
101+ if dialect_name == 'sqlite' :
102+ with op .batch_alter_table ('gateways' , schema = None ) as batch_op :
103+ batch_op .alter_column (
104+ 'slug' ,
105+ existing_type = sa .String (length = 191 ),
106+ type_ = sa .String (length = 255 ),
107+ existing_nullable = False
108+ )
109+ batch_op .alter_column (
110+ 'url' ,
111+ existing_type = sa .String (length = 191 ),
112+ type_ = sa .String (length = 767 ),
113+ existing_nullable = False
114+ )
115+ else :
116+ # PostgreSQL and MySQL support direct ALTER COLUMN
117+ op .alter_column (
118+ 'gateways' ,
119+ 'slug' ,
120+ existing_type = sa .String (length = 191 ),
121+ type_ = sa .String (length = 255 ),
122+ existing_nullable = False
123+ )
124+ op .alter_column (
125+ 'gateways' ,
126+ 'url' ,
127+ existing_type = sa .String (length = 191 ),
128+ type_ = sa .String (length = 767 ),
129+ existing_nullable = False
130+ )
0 commit comments