total rebase
[anni] / priv / repo / migrations / 20240223165000_create_bookmark_folders.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2024 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Repo.Migrations.CreateBookmarkFolders do
6   use Ecto.Migration
7
8   def change do
9     create_if_not_exists table(:bookmark_folders, primary_key: false) do
10       add(:id, :uuid, primary_key: true)
11       add(:name, :string, null: false)
12       add(:emoji, :string)
13       add(:user_id, references(:users, type: :uuid, on_delete: :delete_all))
14
15       timestamps()
16     end
17
18     alter table(:bookmarks) do
19       add_if_not_exists(
20         :folder_id,
21         references(:bookmark_folders, type: :uuid, on_delete: :nilify_all)
22       )
23     end
24
25     create_if_not_exists(unique_index(:bookmark_folders, [:user_id, :name]))
26   end
27 end