UPDATE
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.db import connection
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Rename legacy soil_data tables to location_data tables when needed"
|
||||
|
||||
def handle(self, *args, **options):
|
||||
table_map = {
|
||||
"soil_data_soillocation": "location_data_soillocation",
|
||||
"soil_data_soildepthdata": "location_data_soildepthdata",
|
||||
}
|
||||
|
||||
existing_tables = set(connection.introspection.table_names())
|
||||
renamed: list[str] = []
|
||||
|
||||
with connection.cursor() as cursor:
|
||||
for old_name, new_name in table_map.items():
|
||||
if new_name in existing_tables:
|
||||
continue
|
||||
if old_name not in existing_tables:
|
||||
continue
|
||||
|
||||
cursor.execute(f"RENAME TABLE `{old_name}` TO `{new_name}`")
|
||||
renamed.append(f"{old_name} -> {new_name}")
|
||||
existing_tables.discard(old_name)
|
||||
existing_tables.add(new_name)
|
||||
|
||||
if renamed:
|
||||
self.stdout.write(
|
||||
self.style.SUCCESS("Renamed legacy tables: " + ", ".join(renamed))
|
||||
)
|
||||
return
|
||||
|
||||
self.stdout.write("No legacy location_data tables needed repair.")
|
||||
Reference in New Issue
Block a user