diff --git a/awx/main/migrations/0185_move_JSONBlob_to_JSONField.py b/awx/main/migrations/0185_move_JSONBlob_to_JSONField.py index 643d6a5d59a4221d1598a0287a8f9e389a4faad8..9c6838b16e85448ac8856f6eaf6fe9fca5bd1c5b 100644 --- a/awx/main/migrations/0185_move_JSONBlob_to_JSONField.py +++ b/awx/main/migrations/0185_move_JSONBlob_to_JSONField.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2 on 2023-06-09 19:51 +# Generated by Django 4.2.3 on 2023-08-02 13:18 import awx.main.models.notifications from django.db import migrations, models @@ -11,16 +11,6 @@ class Migration(migrations.Migration): ] operations = [ - migrations.AlterField( - model_name='activitystream', - name='deleted_actor', - field=models.JSONField(null=True), - ), - migrations.AlterField( - model_name='activitystream', - name='setting', - field=models.JSONField(blank=True, default=dict), - ), migrations.AlterField( model_name='instancegroup', name='policy_instance_list', @@ -28,31 +18,11 @@ class Migration(migrations.Migration): blank=True, default=list, help_text='List of exact-match Instances that will always be automatically assigned to this group' ), ), - migrations.AlterField( - model_name='job', - name='survey_passwords', - field=models.JSONField(blank=True, default=dict, editable=False), - ), - migrations.AlterField( - model_name='joblaunchconfig', - name='char_prompts', - field=models.JSONField(blank=True, default=dict), - ), - migrations.AlterField( - model_name='joblaunchconfig', - name='survey_passwords', - field=models.JSONField(blank=True, default=dict, editable=False), - ), migrations.AlterField( model_name='jobtemplate', name='survey_spec', field=models.JSONField(blank=True, default=dict), ), - migrations.AlterField( - model_name='notification', - name='body', - field=models.JSONField(blank=True, default=dict), - ), migrations.AlterField( model_name='notificationtemplate', name='messages', @@ -95,47 +65,180 @@ class Migration(migrations.Migration): field=models.JSONField(blank=True, default=dict, editable=False), ), migrations.AlterField( - model_name='unifiedjob', - name='job_env', - field=models.JSONField(blank=True, default=dict, editable=False), + model_name='workflowjobtemplate', + name='char_prompts', + field=models.JSONField(blank=True, default=dict), ), migrations.AlterField( - model_name='workflowjob', + model_name='workflowjobtemplate', + name='survey_spec', + field=models.JSONField(blank=True, default=dict), + ), + migrations.AlterField( + model_name='workflowjobtemplatenode', name='char_prompts', field=models.JSONField(blank=True, default=dict), ), migrations.AlterField( - model_name='workflowjob', + model_name='workflowjobtemplatenode', name='survey_passwords', field=models.JSONField(blank=True, default=dict, editable=False), ), - migrations.AlterField( - model_name='workflowjobnode', - name='char_prompts', + ## These are potentially a problem. Move the existing fields + ## aside while pretending like they've been deleted, then add + ## in fresh empty fields. We'll do the data migration + ## out-of-band using a task. + migrations.RunSQL( + "ALTER TABLE main_activitystream RENAME deleted_actor TO deleted_actor_old;", + state_operations=[ + migrations.RemoveField( + model_name='activitystream', + name='deleted_actor', + ), + ], + ), + migrations.AddField( + model_name='activitystream', + name='deleted_actor', + field=models.JSONField(null=True), + ), + migrations.RunSQL( + "ALTER TABLE main_activitystream RENAME setting TO setting_old;", + state_operations=[ + migrations.RemoveField( + model_name='activitystream', + name='setting', + ), + ], + ), + migrations.AddField( + model_name='activitystream', + name='setting', field=models.JSONField(blank=True, default=dict), ), - migrations.AlterField( - model_name='workflowjobnode', + migrations.RunSQL( + "ALTER TABLE main_job RENAME survey_passwords TO survey_passwords_old;", + state_operations=[ + migrations.RemoveField( + model_name='job', + name='survey_passwords', + ), + ], + ), + migrations.AddField( + model_name='job', name='survey_passwords', field=models.JSONField(blank=True, default=dict, editable=False), ), - migrations.AlterField( - model_name='workflowjobtemplate', + migrations.RunSQL( + "ALTER TABLE main_joblaunchconfig RENAME char_prompts TO char_prompts_old;", + state_operations=[ + migrations.RemoveField( + model_name='joblaunchconfig', + name='char_prompts', + ), + ], + ), + migrations.AddField( + model_name='joblaunchconfig', name='char_prompts', field=models.JSONField(blank=True, default=dict), ), - migrations.AlterField( - model_name='workflowjobtemplate', - name='survey_spec', + migrations.RunSQL( + "ALTER TABLE main_joblaunchconfig RENAME survey_passwords TO survey_passwords_old;", + state_operations=[ + migrations.RemoveField( + model_name='joblaunchconfig', + name='survey_passwords', + ), + ], + ), + migrations.AddField( + model_name='joblaunchconfig', + name='survey_passwords', + field=models.JSONField(blank=True, default=dict, editable=False), + ), + migrations.RunSQL( + "ALTER TABLE main_notification RENAME body TO body_old;", + state_operations=[ + migrations.RemoveField( + model_name='notification', + name='body', + ), + ], + ), + migrations.AddField( + model_name='notification', + name='body', field=models.JSONField(blank=True, default=dict), ), - migrations.AlterField( - model_name='workflowjobtemplatenode', + migrations.RunSQL( + "ALTER TABLE main_unifiedjob RENAME job_env TO job_env_old;", + state_operations=[ + migrations.RemoveField( + model_name='unifiedjob', + name='job_env', + ), + ], + ), + migrations.AddField( + model_name='unifiedjob', + name='job_env', + field=models.JSONField(blank=True, default=dict, editable=False), + ), + migrations.RunSQL( + "ALTER TABLE main_workflowjob RENAME char_prompts TO char_prompts_old;", + state_operations=[ + migrations.RemoveField( + model_name='workflowjob', + name='char_prompts', + ), + ], + ), + migrations.AddField( + model_name='workflowjob', name='char_prompts', field=models.JSONField(blank=True, default=dict), ), - migrations.AlterField( - model_name='workflowjobtemplatenode', + migrations.RunSQL( + "ALTER TABLE main_workflowjob RENAME survey_passwords TO survey_passwords_old;", + state_operations=[ + migrations.RemoveField( + model_name='workflowjob', + name='survey_passwords', + ), + ], + ), + migrations.AddField( + model_name='workflowjob', + name='survey_passwords', + field=models.JSONField(blank=True, default=dict, editable=False), + ), + migrations.RunSQL( + "ALTER TABLE main_workflowjobnode RENAME char_prompts TO char_prompts_old;", + state_operations=[ + migrations.RemoveField( + model_name='workflowjobnode', + name='char_prompts', + ), + ], + ), + migrations.AddField( + model_name='workflowjobnode', + name='char_prompts', + field=models.JSONField(blank=True, default=dict), + ), + migrations.RunSQL( + "ALTER TABLE main_workflowjobnode RENAME survey_passwords TO survey_passwords_old;", + state_operations=[ + migrations.RemoveField( + model_name='workflowjobnode', + name='survey_passwords', + ), + ], + ), + migrations.AddField( + model_name='workflowjobnode', name='survey_passwords', field=models.JSONField(blank=True, default=dict, editable=False), ),