mirror of
https://github.com/meeb/tubesync.git
synced 2025-06-25 06:26:37 +00:00
Switch to string interpolation
This commit is contained in:
parent
503bb3e5b1
commit
fc89178f28
@ -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 )
|
||||||
|
Loading…
Reference in New Issue
Block a user