diff --git a/src/Inc.TeamAssistant.Migrations/2024_11_25_0_AddUrl.cs b/src/Inc.TeamAssistant.Migrations/2024_11_25_0_AddUrl.cs index b44a1a84..9f95efc4 100644 --- a/src/Inc.TeamAssistant.Migrations/2024_11_25_0_AddUrl.cs +++ b/src/Inc.TeamAssistant.Migrations/2024_11_25_0_AddUrl.cs @@ -30,16 +30,35 @@ UPDATE appraiser.stories public override void Down() { - Delete - .Column("url") - .FromTable("stories") - .InSchema("appraiser"); - Create + .Column("links") + .OnTable("stories") + .InSchema("appraiser") + .AsCustom("jsonb") + .Nullable(); + + Execute.Sql( + """ + UPDATE appraiser.stories as s + SET links = + CASE + WHEN s.url IS NULL + THEN '[]'::JSONB + ELSE to_jsonb(ARRAY[s.url]) + END; + """, + "Move url to links"); + + Alter .Column("links") .OnTable("stories") .InSchema("appraiser") .AsCustom("jsonb") .NotNullable(); + + Delete + .Column("url") + .FromTable("stories") + .InSchema("appraiser"); } } \ No newline at end of file