mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-12 11:29:36 -06:00
125 lines
5.2 KiB
Python
125 lines
5.2 KiB
Python
from django.db import migrations
|
|
|
|
|
|
def update_content_types(apps, schema_editor):
|
|
ContentType = apps.get_model('contenttypes', 'ContentType')
|
|
|
|
# Delete the new ContentTypes effected by the new model in the core app
|
|
ContentType.objects.filter(app_label='core', model='objectchange').delete()
|
|
|
|
# Update the app labels of the original ContentTypes for extras.ObjectChange to ensure that any
|
|
# foreign key references are preserved
|
|
ContentType.objects.filter(app_label='extras', model='objectchange').update(app_label='core')
|
|
|
|
|
|
def update_dashboard_widgets(apps, schema_editor):
|
|
Dashboard = apps.get_model('extras', 'Dashboard')
|
|
|
|
for dashboard in Dashboard.objects.all():
|
|
for key, widget in dashboard.config.items():
|
|
if widget['config'].get('model') == 'extras.objectchange':
|
|
widget['config']['model'] = 'core.objectchange'
|
|
elif models := widget['config'].get('models'):
|
|
models = list(map(lambda x: x.replace('extras.objectchange', 'core.objectchange'), models))
|
|
dashboard.config[key]['config']['models'] = models
|
|
dashboard.save()
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('extras', '0116_custom_link_button_color'),
|
|
('core', '0011_move_objectchange'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.SeparateDatabaseAndState(
|
|
state_operations=[
|
|
migrations.DeleteModel(
|
|
name='ObjectChange',
|
|
),
|
|
],
|
|
database_operations=[
|
|
migrations.AlterModelTable(
|
|
name='ObjectChange',
|
|
table='core_objectchange',
|
|
),
|
|
|
|
# Rename PK sequence
|
|
migrations.RunSQL(
|
|
"ALTER TABLE extras_objectchange_id_seq"
|
|
" RENAME TO core_objectchange_id_seq"
|
|
),
|
|
|
|
# Rename indexes. Hashes generated by schema_editor._create_index_name()
|
|
migrations.RunSQL(
|
|
"ALTER INDEX extras_objectchange_pkey"
|
|
" RENAME TO core_objectchange_pkey"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER INDEX extras_obje_changed_927fe5_idx"
|
|
" RENAME TO core_objectchange_changed_object_type_id_cha_79a9ed1e"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER INDEX extras_obje_related_bfcdef_idx"
|
|
" RENAME TO core_objectchange_related_object_type_id_rel_a71d604a"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER INDEX extras_objectchange_changed_object_type_id_b755bb60"
|
|
" RENAME TO core_objectchange_changed_object_type_id_2070ade6"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER INDEX extras_objectchange_related_object_type_id_fe6e521f"
|
|
" RENAME TO core_objectchange_related_object_type_id_b80958af"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER INDEX extras_objectchange_request_id_4ae21e90"
|
|
" RENAME TO core_objectchange_request_id_d9d160ac"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER INDEX extras_objectchange_time_224380ea"
|
|
" RENAME TO core_objectchange_time_800f60a5"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER INDEX extras_objectchange_user_id_7fdf8186"
|
|
" RENAME TO core_objectchange_user_id_2b2142be"
|
|
),
|
|
|
|
# Rename constraints
|
|
migrations.RunSQL(
|
|
"ALTER TABLE core_objectchange RENAME CONSTRAINT "
|
|
"extras_objectchange_changed_object_id_check TO "
|
|
"core_objectchange_changed_object_id_check"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER TABLE core_objectchange RENAME CONSTRAINT "
|
|
"extras_objectchange_related_object_id_check TO "
|
|
"core_objectchange_related_object_id_check"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER TABLE core_objectchange RENAME CONSTRAINT "
|
|
"extras_objectchange_changed_object_type__b755bb60_fk_django_co TO "
|
|
"core_objectchange_changed_object_type_id_2070ade6"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER TABLE core_objectchange RENAME CONSTRAINT "
|
|
"extras_objectchange_related_object_type__fe6e521f_fk_django_co TO "
|
|
"core_objectchange_related_object_type_id_b80958af"
|
|
),
|
|
migrations.RunSQL(
|
|
"ALTER TABLE core_objectchange RENAME CONSTRAINT "
|
|
"extras_objectchange_user_id_7fdf8186_fk_auth_user_id TO "
|
|
"core_objectchange_user_id_2b2142be"
|
|
),
|
|
],
|
|
),
|
|
migrations.RunPython(
|
|
code=update_content_types,
|
|
reverse_code=migrations.RunPython.noop
|
|
),
|
|
migrations.RunPython(
|
|
code=update_dashboard_widgets,
|
|
reverse_code=migrations.RunPython.noop
|
|
),
|
|
]
|