Fix json_to_jsonb migrations
parent
d5bc770334
commit
6d4a4cca9b
|
@ -17,7 +17,7 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "{table_name}"
|
ALTER TABLE "{table_name}"
|
||||||
ALTER COLUMN "{column_name}"
|
ALTER COLUMN "{column_name}"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""".format(
|
""".format(
|
||||||
table_name="custom_attributes_epiccustomattributesvalues",
|
table_name="custom_attributes_epiccustomattributesvalues",
|
||||||
column_name="attributes_values",
|
column_name="attributes_values",
|
||||||
|
@ -29,7 +29,7 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "{table_name}"
|
ALTER TABLE "{table_name}"
|
||||||
ALTER COLUMN "{column_name}"
|
ALTER COLUMN "{column_name}"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""".format(
|
""".format(
|
||||||
table_name="custom_attributes_userstorycustomattributesvalues",
|
table_name="custom_attributes_userstorycustomattributesvalues",
|
||||||
column_name="attributes_values",
|
column_name="attributes_values",
|
||||||
|
@ -41,7 +41,7 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "{table_name}"
|
ALTER TABLE "{table_name}"
|
||||||
ALTER COLUMN "{column_name}"
|
ALTER COLUMN "{column_name}"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""".format(
|
""".format(
|
||||||
table_name="custom_attributes_taskcustomattributesvalues",
|
table_name="custom_attributes_taskcustomattributesvalues",
|
||||||
column_name="attributes_values",
|
column_name="attributes_values",
|
||||||
|
@ -53,7 +53,7 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "{table_name}"
|
ALTER TABLE "{table_name}"
|
||||||
ALTER COLUMN "{column_name}"
|
ALTER COLUMN "{column_name}"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""".format(
|
""".format(
|
||||||
table_name="custom_attributes_issuecustomattributesvalues",
|
table_name="custom_attributes_issuecustomattributesvalues",
|
||||||
column_name="attributes_values",
|
column_name="attributes_values",
|
||||||
|
|
|
@ -18,31 +18,31 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "history_historyentry"
|
ALTER TABLE "history_historyentry"
|
||||||
ALTER COLUMN "delete_comment_user"
|
ALTER COLUMN "delete_comment_user"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("delete_comment_user"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("delete_comment_user"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "comment_versions"
|
ALTER COLUMN "comment_versions"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("comment_versions"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("comment_versions"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "values_diff_cache"
|
ALTER COLUMN "values_diff_cache"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("values_diff_cache"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("values_diff_cache"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "user"
|
ALTER COLUMN "user"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("user"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("user"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "diff"
|
ALTER COLUMN "diff"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("diff"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("diff"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "snapshot"
|
ALTER COLUMN "snapshot"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("snapshot"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("snapshot"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "values"
|
ALTER COLUMN "values"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("values"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("values"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""",
|
""",
|
||||||
reverse_sql=migrations.RunSQL.noop
|
reverse_sql=migrations.RunSQL.noop
|
||||||
),
|
),
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "projects_projectmodulesconfig"
|
ALTER TABLE "projects_projectmodulesconfig"
|
||||||
ALTER COLUMN "config"
|
ALTER COLUMN "config"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("config"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("config"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""",
|
""",
|
||||||
reverse_sql=migrations.RunSQL.noop
|
reverse_sql=migrations.RunSQL.noop
|
||||||
),
|
),
|
||||||
|
@ -27,43 +27,43 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "projects_projecttemplate"
|
ALTER TABLE "projects_projecttemplate"
|
||||||
ALTER COLUMN "roles"
|
ALTER COLUMN "roles"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("roles"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("roles"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "default_options"
|
ALTER COLUMN "default_options"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("default_options"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("default_options"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "epic_statuses"
|
ALTER COLUMN "epic_statuses"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("epic_statuses"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("epic_statuses"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "us_statuses"
|
ALTER COLUMN "us_statuses"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("us_statuses"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("us_statuses"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "points"
|
ALTER COLUMN "points"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("points"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("points"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "task_statuses"
|
ALTER COLUMN "task_statuses"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("task_statuses"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("task_statuses"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "issue_statuses"
|
ALTER COLUMN "issue_statuses"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("issue_statuses"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("issue_statuses"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "issue_types"
|
ALTER COLUMN "issue_types"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("issue_types"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("issue_types"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "priorities"
|
ALTER COLUMN "priorities"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("priorities"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("priorities"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "severities"
|
ALTER COLUMN "severities"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("severities"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("severities"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""",
|
""",
|
||||||
reverse_sql=migrations.RunSQL.noop
|
reverse_sql=migrations.RunSQL.noop
|
||||||
),
|
),
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "{table_name}"
|
ALTER TABLE "{table_name}"
|
||||||
ALTER COLUMN "{column_name}"
|
ALTER COLUMN "{column_name}"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""".format(
|
""".format(
|
||||||
table_name="timeline_timeline",
|
table_name="timeline_timeline",
|
||||||
column_name="data",
|
column_name="data",
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "{table_name}"
|
ALTER TABLE "{table_name}"
|
||||||
ALTER COLUMN "{column_name}"
|
ALTER COLUMN "{column_name}"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""".format(
|
""".format(
|
||||||
table_name="users_authdata",
|
table_name="users_authdata",
|
||||||
column_name="extra",
|
column_name="extra",
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "{table_name}"
|
ALTER TABLE "{table_name}"
|
||||||
ALTER COLUMN "{column_name}"
|
ALTER COLUMN "{column_name}"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""".format(
|
""".format(
|
||||||
table_name="userstorage_storageentry",
|
table_name="userstorage_storageentry",
|
||||||
column_name="value",
|
column_name="value",
|
||||||
|
|
|
@ -18,15 +18,15 @@ class Migration(migrations.Migration):
|
||||||
ALTER TABLE "webhooks_webhooklog"
|
ALTER TABLE "webhooks_webhooklog"
|
||||||
ALTER COLUMN "request_headers"
|
ALTER COLUMN "request_headers"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("request_headers"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("request_headers"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "request_data"
|
ALTER COLUMN "request_data"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("request_data"::text, '\\u0000', '\\\\u0000', 'g')::jsonb,
|
USING regexp_replace("request_data"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb,
|
||||||
|
|
||||||
ALTER COLUMN "response_headers"
|
ALTER COLUMN "response_headers"
|
||||||
TYPE jsonb
|
TYPE jsonb
|
||||||
USING regexp_replace("response_headers"::text, '\\u0000', '\\\\u0000', 'g')::jsonb;
|
USING regexp_replace("response_headers"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb;
|
||||||
""",
|
""",
|
||||||
reverse_sql=migrations.RunSQL.noop
|
reverse_sql=migrations.RunSQL.noop
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in New Issue