@@ -298,9 +298,9 @@ def _get_snapshot_table(
298298
299299 @property
300300 def alter_columns (self ) -> AlterStatements :
301- response = []
302- extra_imports = []
303- extra_definitions = []
301+ response : t . List [ str ] = []
302+ extra_imports : t . List [ Import ] = []
303+ extra_definitions : t . List [ str ] = []
304304 for table in self .schema :
305305 snapshot_table = self ._get_snapshot_table (table .class_name )
306306 if snapshot_table :
@@ -351,30 +351,38 @@ def drop_columns(self) -> AlterStatements:
351351
352352 @property
353353 def add_columns (self ) -> AlterStatements :
354- response = []
355- extra_imports = []
356- extra_definitions = []
354+ response : t . List [ str ] = []
355+ extra_imports : t . List [ Import ] = []
356+ extra_definitions : t . List [ str ] = []
357357 for table in self .schema :
358358 snapshot_table = self ._get_snapshot_table (table .class_name )
359359 if snapshot_table :
360360 delta : TableDelta = table - snapshot_table
361361 else :
362362 continue
363363
364- for column in delta .add_columns :
364+ for add_column in delta .add_columns :
365365 if (
366- column .column_name
366+ add_column .column_name
367367 in self .rename_columns_collection .new_column_names
368368 ):
369369 continue
370370
371- params = serialise_params (column .params )
371+ params = serialise_params (add_column .params )
372372 cleaned_params = params .params
373373 extra_imports .extend (params .extra_imports )
374374 extra_definitions .extend (params .extra_definitions )
375375
376+ column_class = add_column .column_class
377+ extra_imports .append (
378+ Import (
379+ module = column_class .__module__ ,
380+ target = column_class .__name__ ,
381+ )
382+ )
383+
376384 response .append (
377- f"manager.add_column(table_class_name='{ table .class_name } ', tablename='{ table .tablename } ', column_name='{ column .column_name } ', column_class_name='{ column .column_class_name } ', params={ str (cleaned_params )} )" # noqa: E501
385+ f"manager.add_column(table_class_name='{ table .class_name } ', tablename='{ table .tablename } ', column_name='{ add_column .column_name } ', column_class_name='{ add_column .column_class_name } ', column_class= { column_class . __name__ } , params={ str (cleaned_params )} )" # noqa: E501
378386 )
379387 return AlterStatements (
380388 statements = response ,
@@ -399,9 +407,9 @@ def new_table_columns(self) -> AlterStatements:
399407 set (self .schema ) - set (self .schema_snapshot )
400408 )
401409
402- response = []
403- extra_imports = []
404- extra_definitions = []
410+ response : t . List [ str ] = []
411+ extra_imports : t . List [ Import ] = []
412+ extra_definitions : t . List [ str ] = []
405413 for table in new_tables :
406414 if (
407415 table .class_name
@@ -417,8 +425,15 @@ def new_table_columns(self) -> AlterStatements:
417425 extra_imports .extend (_params .extra_imports )
418426 extra_definitions .extend (_params .extra_definitions )
419427
428+ extra_imports .append (
429+ Import (
430+ module = column .__class__ .__module__ ,
431+ target = column .__class__ .__name__ ,
432+ )
433+ )
434+
420435 response .append (
421- f"manager.add_column(table_class_name='{ table .class_name } ', tablename='{ table .tablename } ', column_name='{ column ._meta .name } ', column_class_name='{ column .__class__ .__name__ } ', params={ str (cleaned_params )} )" # noqa: E501
436+ f"manager.add_column(table_class_name='{ table .class_name } ', tablename='{ table .tablename } ', column_name='{ column ._meta .name } ', column_class_name='{ column .__class__ .__name__ } ', column_class= { column . __class__ . __name__ } , params={ str (cleaned_params )} )" # noqa: E501
422437 )
423438 return AlterStatements (
424439 statements = response ,
0 commit comments