diff --git a/taiga/projects/custom_attributes/migrations/0011_json_to_jsonb.py b/taiga/projects/custom_attributes/migrations/0011_json_to_jsonb.py index cfe4ff4c..bbe14196 100644 --- a/taiga/projects/custom_attributes/migrations/0011_json_to_jsonb.py +++ b/taiga/projects/custom_attributes/migrations/0011_json_to_jsonb.py @@ -17,7 +17,7 @@ class Migration(migrations.Migration): ALTER TABLE "{table_name}" ALTER COLUMN "{column_name}" TYPE jsonb - USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb; + USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb; """.format( table_name="custom_attributes_epiccustomattributesvalues", column_name="attributes_values", @@ -29,7 +29,7 @@ class Migration(migrations.Migration): ALTER TABLE "{table_name}" ALTER COLUMN "{column_name}" TYPE jsonb - USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb; + USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb; """.format( table_name="custom_attributes_userstorycustomattributesvalues", column_name="attributes_values", @@ -41,7 +41,7 @@ class Migration(migrations.Migration): ALTER TABLE "{table_name}" ALTER COLUMN "{column_name}" TYPE jsonb - USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb; + USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb; """.format( table_name="custom_attributes_taskcustomattributesvalues", column_name="attributes_values", @@ -53,7 +53,7 @@ class Migration(migrations.Migration): ALTER TABLE "{table_name}" ALTER COLUMN "{column_name}" TYPE jsonb - USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb; + USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb; """.format( table_name="custom_attributes_issuecustomattributesvalues", column_name="attributes_values", diff --git a/taiga/projects/history/migrations/0014_json_to_jsonb.py b/taiga/projects/history/migrations/0014_json_to_jsonb.py index c0704233..940217d9 100644 --- a/taiga/projects/history/migrations/0014_json_to_jsonb.py +++ b/taiga/projects/history/migrations/0014_json_to_jsonb.py @@ -18,31 +18,31 @@ class Migration(migrations.Migration): ALTER TABLE "history_historyentry" ALTER COLUMN "delete_comment_user" 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" 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" 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" TYPE jsonb - USING regexp_replace("user"::text, '\\u0000', '\\\\u0000', 'g')::jsonb, + USING regexp_replace("user"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb, ALTER COLUMN "diff" TYPE jsonb - USING regexp_replace("diff"::text, '\\u0000', '\\\\u0000', 'g')::jsonb, + USING regexp_replace("diff"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb, ALTER COLUMN "snapshot" TYPE jsonb - USING regexp_replace("snapshot"::text, '\\u0000', '\\\\u0000', 'g')::jsonb, + USING regexp_replace("snapshot"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb, ALTER COLUMN "values" 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 ), diff --git a/taiga/projects/migrations/0055_json_to_jsonb.py b/taiga/projects/migrations/0055_json_to_jsonb.py index 4530bf7f..f84d35c0 100644 --- a/taiga/projects/migrations/0055_json_to_jsonb.py +++ b/taiga/projects/migrations/0055_json_to_jsonb.py @@ -18,7 +18,7 @@ class Migration(migrations.Migration): ALTER TABLE "projects_projectmodulesconfig" ALTER COLUMN "config" 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 ), @@ -27,43 +27,43 @@ class Migration(migrations.Migration): ALTER TABLE "projects_projecttemplate" ALTER COLUMN "roles" TYPE jsonb - USING regexp_replace("roles"::text, '\\u0000', '\\\\u0000', 'g')::jsonb, + USING regexp_replace("roles"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb, ALTER COLUMN "default_options" 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" 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" 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" TYPE jsonb - USING regexp_replace("points"::text, '\\u0000', '\\\\u0000', 'g')::jsonb, + USING regexp_replace("points"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb, ALTER COLUMN "task_statuses" 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" 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" 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" TYPE jsonb - USING regexp_replace("priorities"::text, '\\u0000', '\\\\u0000', 'g')::jsonb, + USING regexp_replace("priorities"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb, ALTER COLUMN "severities" 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 ), diff --git a/taiga/timeline/migrations/0006_json_to_jsonb.py b/taiga/timeline/migrations/0006_json_to_jsonb.py index b6b17e54..de9b3830 100644 --- a/taiga/timeline/migrations/0006_json_to_jsonb.py +++ b/taiga/timeline/migrations/0006_json_to_jsonb.py @@ -18,7 +18,7 @@ class Migration(migrations.Migration): ALTER TABLE "{table_name}" ALTER COLUMN "{column_name}" TYPE jsonb - USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb; + USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb; """.format( table_name="timeline_timeline", column_name="data", diff --git a/taiga/users/migrations/0023_json_to_jsonb.py b/taiga/users/migrations/0023_json_to_jsonb.py index f16d5699..feb42127 100644 --- a/taiga/users/migrations/0023_json_to_jsonb.py +++ b/taiga/users/migrations/0023_json_to_jsonb.py @@ -18,7 +18,7 @@ class Migration(migrations.Migration): ALTER TABLE "{table_name}" ALTER COLUMN "{column_name}" TYPE jsonb - USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb; + USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb; """.format( table_name="users_authdata", column_name="extra", diff --git a/taiga/userstorage/migrations/0003_json_to_jsonb.py b/taiga/userstorage/migrations/0003_json_to_jsonb.py index 228324ac..e828d74c 100644 --- a/taiga/userstorage/migrations/0003_json_to_jsonb.py +++ b/taiga/userstorage/migrations/0003_json_to_jsonb.py @@ -18,7 +18,7 @@ class Migration(migrations.Migration): ALTER TABLE "{table_name}" ALTER COLUMN "{column_name}" TYPE jsonb - USING regexp_replace("{column_name}"::text, '\\u0000', '\\\\u0000', 'g')::jsonb; + USING regexp_replace("{column_name}"::text, '[\\\\]+u0000', '\\\\\\\\u0000', 'g')::jsonb; """.format( table_name="userstorage_storageentry", column_name="value", diff --git a/taiga/webhooks/migrations/0006_json_to_jsonb.py b/taiga/webhooks/migrations/0006_json_to_jsonb.py index ed6258e3..fb86ed7b 100644 --- a/taiga/webhooks/migrations/0006_json_to_jsonb.py +++ b/taiga/webhooks/migrations/0006_json_to_jsonb.py @@ -18,15 +18,15 @@ class Migration(migrations.Migration): ALTER TABLE "webhooks_webhooklog" ALTER COLUMN "request_headers" 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" 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" 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 ),