Switch to string interpolation

This commit is contained in:
tcely 2025-05-04 06:24:10 -04:00 committed by GitHub
parent 503bb3e5b1
commit fc89178f28
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -62,11 +62,18 @@ class Command(BaseCommand):
def _using_char_for_uuid(self, table_str, /): def _using_char_for_uuid(self, table_str, /):
fields = self._get_fields(table_str) fields = self._get_fields(table_str)
return 'uuid' in [ f.name for f in fields if 'varchar' == f.data_type ] return 'uuid' in [
f.name for f in fields if 'varchar' == f.data_type and 32 == f.display_size
]
def _column_type(self, table_str, column_str='uuid', /): def _column_type(self, table_str, column_str='uuid', /):
fields = self._get_fields(table_str) fields = self._get_fields(table_str)
return [ f.data_type for f in fields if column_str.lower() == f.name.lower() ][0] found = [
f'{f.data_type}({f.display_size})' for f in fields if column_str.lower() == f.name.lower()
]
if not found:
return str()
return found[0]
def handle(self, *args, **options): def handle(self, *args, **options):
if 'mysql' != db.connection.vendor: if 'mysql' != db.connection.vendor:
@ -92,16 +99,17 @@ class Command(BaseCommand):
raise CommandError(_( raise CommandError(_(
f'The {display_name} database server does not support UUID columns.' f'The {display_name} database server does not support UUID columns.'
)) ))
uuid_column_type_str = 'uuid(36)'
both_tables = ( both_tables = (
self._using_char_for_uuid('sync_source') and self._using_char_for_uuid('sync_source') and
self._using_char_for_uuid('sync_media') self._using_char_for_uuid('sync_media')
) )
if not both_tables: if not both_tables:
if 'uuid' == self._column_type('sync_source', 'uuid').lower(): if uuid_column_type_str == self._column_type('sync_source', 'uuid').lower():
log.info('The source table is already using a native UUID column.') log.info('The source table is already using a native UUID column.')
elif 'uuid' == self._column_type('sync_media', 'uuid').lower(): elif uuid_column_type_str == self._column_type('sync_media', 'uuid').lower():
log.info('The media table is already using a native UUID column.') log.info('The media table is already using a native UUID column.')
elif 'uuid' == self._column_type('sync_media', 'source_id').lower(): elif uuid_column_type_str == self._column_type('sync_media', 'source_id').lower():
log.info('The media table is already using a native UUID column.') log.info('The media table is already using a native UUID column.')
else: else:
raise CommandError(_( raise CommandError(_(
@ -118,41 +126,41 @@ class Command(BaseCommand):
source_id_column_str = db_quote_name('source_id') source_id_column_str = db_quote_name('source_id')
uuid_column_str = db_quote_name('uuid') uuid_column_str = db_quote_name('uuid')
uuid_type_str = 'uuid'.upper() uuid_type_str = 'uuid'.upper()
remove_fk = schema.sql_delete_fk.format(dict( remove_fk = schema.sql_delete_fk % dict(
table=media_table_str, table=media_table_str,
name=fk_name_str, name=fk_name_str,
)) )
add_fk = schema.sql_create_fk.format(dict( add_fk = schema.sql_create_fk % dict(
table=media_table_str, table=media_table_str,
name=fk_name_str, name=fk_name_str,
column=source_id_column_str, column=source_id_column_str,
to_table=source_table_str, to_table=source_table_str,
to_column=uuid_column_str, to_column=uuid_column_str,
deferrable='', deferrable='',
)) )
statement_list = list(( statement_list = list((
remove_fk, remove_fk,
schema.sql_alter_column.format(dict( schema.sql_alter_column % dict(
table=media_table_str, table=media_table_str,
changes=schema.sql_alter_column_not_null.format(dict( changes=schema.sql_alter_column_not_null % dict(
type=uuid_type_str, type=uuid_type_str,
column=uuid_column_str, column=uuid_column_str,
)), ),
)), ),
schema.sql_alter_column.format(dict( schema.sql_alter_column % dict(
table=media_table_str, table=media_table_str,
changes=schema.sql_alter_column_not_null.format(dict( changes=schema.sql_alter_column_not_null % dict(
type=uuid_type_str, type=uuid_type_str,
column=source_id_column_str, column=source_id_column_str,
)), ),
)), ),
schema.sql_alter_column.format(dict( schema.sql_alter_column % dict(
table=source_table_str, table=source_table_str,
changes=schema.sql_alter_column_not_null.format(dict( changes=schema.sql_alter_column_not_null % dict(
type=uuid_type_str, type=uuid_type_str,
column=uuid_column_str, column=uuid_column_str,
)), ),
)), ),
add_fk, add_fk,
)) ))
pp( statement_list ) pp( statement_list )