summaryrefslogtreecommitdiff
path: root/priv/repo
diff options
context:
space:
mode:
Diffstat (limited to 'priv/repo')
-rw-r--r--priv/repo/migrations/20190408123347_create_conversations.exs26
-rw-r--r--priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs7
-rw-r--r--priv/repo/migrations/20190413082658_create_bookmarks.exs14
-rw-r--r--priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs29
-rw-r--r--priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs8
-rw-r--r--priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs7
-rw-r--r--priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs9
7 files changed, 100 insertions, 0 deletions
diff --git a/priv/repo/migrations/20190408123347_create_conversations.exs b/priv/repo/migrations/20190408123347_create_conversations.exs
new file mode 100644
index 000000000..0e0af30ae
--- /dev/null
+++ b/priv/repo/migrations/20190408123347_create_conversations.exs
@@ -0,0 +1,26 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Repo.Migrations.CreateConversations do
+ use Ecto.Migration
+
+ def change do
+ create table(:conversations) do
+ add(:ap_id, :string, null: false)
+ timestamps()
+ end
+
+ create table(:conversation_participations) do
+ add(:user_id, references(:users, type: :uuid, on_delete: :delete_all))
+ add(:conversation_id, references(:conversations, on_delete: :delete_all))
+ add(:read, :boolean, default: false)
+
+ timestamps()
+ end
+
+ create index(:conversation_participations, [:conversation_id])
+ create unique_index(:conversation_participations, [:user_id, :conversation_id])
+ create unique_index(:conversations, [:ap_id])
+ end
+end
diff --git a/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs b/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs
new file mode 100644
index 000000000..1ce688c52
--- /dev/null
+++ b/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs
@@ -0,0 +1,7 @@
+defmodule Pleroma.Repo.Migrations.AddParticipationUpdatedAtIndex do
+ use Ecto.Migration
+
+ def change do
+ create index(:conversation_participations, ["updated_at desc"])
+ end
+end
diff --git a/priv/repo/migrations/20190413082658_create_bookmarks.exs b/priv/repo/migrations/20190413082658_create_bookmarks.exs
new file mode 100644
index 000000000..38b108158
--- /dev/null
+++ b/priv/repo/migrations/20190413082658_create_bookmarks.exs
@@ -0,0 +1,14 @@
+defmodule Pleroma.Repo.Migrations.CreateBookmarks do
+ use Ecto.Migration
+
+ def change do
+ create table(:bookmarks) do
+ add(:user_id, references(:users, type: :uuid, on_delete: :delete_all))
+ add(:activity_id, references(:activities, type: :uuid, on_delete: :delete_all))
+
+ timestamps()
+ end
+
+ create(unique_index(:bookmarks, [:user_id, :activity_id]))
+ end
+end
diff --git a/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs
new file mode 100644
index 000000000..134b7c6f7
--- /dev/null
+++ b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs
@@ -0,0 +1,29 @@
+defmodule Pleroma.Repo.Migrations.MigrateOldBookmarks do
+ use Ecto.Migration
+ import Ecto.Query
+ alias Pleroma.Activity
+ alias Pleroma.Bookmark
+ alias Pleroma.User
+ alias Pleroma.Repo
+
+ def change do
+ query =
+ from(u in User,
+ where: u.local == true,
+ where: fragment("array_length(bookmarks, 1)") > 0,
+ select: %{id: u.id, bookmarks: fragment("bookmarks")}
+ )
+
+ Repo.stream(query)
+ |> Enum.each(fn %{id: user_id, bookmarks: bookmarks} ->
+ Enum.each(bookmarks, fn ap_id ->
+ activity = Activity.get_create_by_object_ap_id(ap_id)
+ unless is_nil(activity), do: {:ok, _} = Bookmark.create(user_id, activity.id)
+ end)
+ end)
+
+ alter table(:users) do
+ remove(:bookmarks)
+ end
+ end
+end
diff --git a/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs b/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs
new file mode 100644
index 000000000..9b274695e
--- /dev/null
+++ b/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs
@@ -0,0 +1,8 @@
+defmodule Pleroma.Repo.Migrations.AddFTSIndexToObjects do
+ use Ecto.Migration
+
+ def change do
+ drop_if_exists index(:activities, ["(to_tsvector('english', data->'object'->>'content'))"], using: :gin, name: :activities_fts)
+ create index(:objects, ["(to_tsvector('english', data->>'content'))"], using: :gin, name: :objects_fts)
+ end
+end
diff --git a/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs b/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs
new file mode 100644
index 000000000..449f2a3d4
--- /dev/null
+++ b/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs
@@ -0,0 +1,7 @@
+defmodule Pleroma.Repo.Migrations.AddRefreshTokenIndexToToken do
+ use Ecto.Migration
+
+ def change do
+ create(unique_index(:oauth_tokens, [:refresh_token]))
+ end
+end
diff --git a/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs b/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs
new file mode 100644
index 000000000..2ffb88cc9
--- /dev/null
+++ b/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs
@@ -0,0 +1,9 @@
+defmodule Pleroma.Repo.Migrations.ChangeHideColumnInFilterTable do
+ use Ecto.Migration
+
+ def change do
+ alter table(:filters) do
+ modify :hide, :boolean, default: false
+ end
+ end
+end