mirror of
https://github.com/ansible/awx.git
synced 2026-05-19 14:57:39 -02:30
Modify main/0185 to set aside the json fields that might be a problem
Rename them, then create a new clean field of the new jsonb type. We'll use a task to do the data conversion.
This commit is contained in:
@@ -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
|
import awx.main.models.notifications
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
@@ -11,16 +11,6 @@ class Migration(migrations.Migration):
|
|||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
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(
|
migrations.AlterField(
|
||||||
model_name='instancegroup',
|
model_name='instancegroup',
|
||||||
name='policy_instance_list',
|
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'
|
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(
|
migrations.AlterField(
|
||||||
model_name='jobtemplate',
|
model_name='jobtemplate',
|
||||||
name='survey_spec',
|
name='survey_spec',
|
||||||
field=models.JSONField(blank=True, default=dict),
|
field=models.JSONField(blank=True, default=dict),
|
||||||
),
|
),
|
||||||
migrations.AlterField(
|
|
||||||
model_name='notification',
|
|
||||||
name='body',
|
|
||||||
field=models.JSONField(blank=True, default=dict),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='notificationtemplate',
|
model_name='notificationtemplate',
|
||||||
name='messages',
|
name='messages',
|
||||||
@@ -94,31 +64,6 @@ class Migration(migrations.Migration):
|
|||||||
name='survey_passwords',
|
name='survey_passwords',
|
||||||
field=models.JSONField(blank=True, default=dict, editable=False),
|
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),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='workflowjob',
|
|
||||||
name='char_prompts',
|
|
||||||
field=models.JSONField(blank=True, default=dict),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='workflowjob',
|
|
||||||
name='survey_passwords',
|
|
||||||
field=models.JSONField(blank=True, default=dict, editable=False),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='workflowjobnode',
|
|
||||||
name='char_prompts',
|
|
||||||
field=models.JSONField(blank=True, default=dict),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='workflowjobnode',
|
|
||||||
name='survey_passwords',
|
|
||||||
field=models.JSONField(blank=True, default=dict, editable=False),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='workflowjobtemplate',
|
model_name='workflowjobtemplate',
|
||||||
name='char_prompts',
|
name='char_prompts',
|
||||||
@@ -139,4 +84,194 @@ class Migration(migrations.Migration):
|
|||||||
name='survey_passwords',
|
name='survey_passwords',
|
||||||
field=models.JSONField(blank=True, default=dict, editable=False),
|
field=models.JSONField(blank=True, default=dict, editable=False),
|
||||||
),
|
),
|
||||||
|
# These are potentially a problem. Move the existing fields
|
||||||
|
# aside while pretending like they've been deleted, then add
|
||||||
|
# in fresh empty fields. Make the old fields nullable where
|
||||||
|
# needed while we are at it, so that new rows don't hit
|
||||||
|
# IntegrityError. We'll do the data migration out-of-band
|
||||||
|
# using a task.
|
||||||
|
migrations.RunSQL( # Already nullable
|
||||||
|
"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;
|
||||||
|
ALTER TABLE main_activitystream ALTER COLUMN setting_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
state_operations=[
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='activitystream',
|
||||||
|
name='setting',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='activitystream',
|
||||||
|
name='setting',
|
||||||
|
field=models.JSONField(blank=True, default=dict),
|
||||||
|
),
|
||||||
|
migrations.RunSQL(
|
||||||
|
"""
|
||||||
|
ALTER TABLE main_job RENAME survey_passwords TO survey_passwords_old;
|
||||||
|
ALTER TABLE main_job ALTER COLUMN survey_passwords_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
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.RunSQL(
|
||||||
|
"""
|
||||||
|
ALTER TABLE main_joblaunchconfig RENAME char_prompts TO char_prompts_old;
|
||||||
|
ALTER TABLE main_joblaunchconfig ALTER COLUMN char_prompts_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
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.RunSQL(
|
||||||
|
"""
|
||||||
|
ALTER TABLE main_joblaunchconfig RENAME survey_passwords TO survey_passwords_old;
|
||||||
|
ALTER TABLE main_joblaunchconfig ALTER COLUMN survey_passwords_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
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;
|
||||||
|
ALTER TABLE main_notification ALTER COLUMN body_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
state_operations=[
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='notification',
|
||||||
|
name='body',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='notification',
|
||||||
|
name='body',
|
||||||
|
field=models.JSONField(blank=True, default=dict),
|
||||||
|
),
|
||||||
|
migrations.RunSQL(
|
||||||
|
"""
|
||||||
|
ALTER TABLE main_unifiedjob RENAME job_env TO job_env_old;
|
||||||
|
ALTER TABLE main_unifiedjob ALTER COLUMN job_env_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
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;
|
||||||
|
ALTER TABLE main_workflowjob ALTER COLUMN char_prompts_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
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.RunSQL(
|
||||||
|
"""
|
||||||
|
ALTER TABLE main_workflowjob RENAME survey_passwords TO survey_passwords_old;
|
||||||
|
ALTER TABLE main_workflowjob ALTER COLUMN survey_passwords_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
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;
|
||||||
|
ALTER TABLE main_workflowjobnode ALTER COLUMN char_prompts_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
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;
|
||||||
|
ALTER TABLE main_workflowjobnode ALTER COLUMN survey_passwords_old DROP NOT NULL;
|
||||||
|
""",
|
||||||
|
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),
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user