Backend settings sync (#226)
[akkoma] / priv / repo / migrations / 20220911195347_add_user_frontend_profiles.exs
1 defmodule Pleroma.Repo.Migrations.AddUserFrontendProfiles do
2 use Ecto.Migration
3
4 def up do
5 create_if_not_exists table("user_frontend_setting_profiles", primary_key: false) do
6 add(:user_id, references(:users, type: :uuid, on_delete: :delete_all), primary_key: true)
7 add(:frontend_name, :string, primary_key: true)
8 add(:profile_name, :string, primary_key: true)
9 add(:version, :integer)
10 add(:settings, :map)
11 timestamps()
12 end
13
14 create_if_not_exists(index(:user_frontend_setting_profiles, [:user_id, :frontend_name]))
15
16 create_if_not_exists(
17 unique_index(:user_frontend_setting_profiles, [:user_id, :frontend_name, :profile_name])
18 )
19 end
20
21 def down do
22 drop_if_exists(table("user_frontend_setting_profiles"))
23 drop_if_exists(index(:user_frontend_setting_profiles, [:user_id, :frontend_name]))
24
25 drop_if_exists(
26 unique_index(:user_frontend_setting_profiles, [:user_id, :frontend_name, :profile_name])
27 )
28 end
29 end