[#3213] Prototype of data migrations functionality / HashtagsTableMigrator.
This commit is contained in:
parent
8c972de045
commit
3e4d84729a
11 changed files with 316 additions and 64 deletions
|
|
@ -0,0 +1,17 @@
|
|||
defmodule Pleroma.Repo.Migrations.CreateDataMigrations do
|
||||
use Ecto.Migration
|
||||
|
||||
def change do
|
||||
create_if_not_exists table(:data_migrations) do
|
||||
add(:name, :string, null: false)
|
||||
add(:state, :integer, default: 1)
|
||||
add(:feature_lock, :boolean, default: false)
|
||||
add(:params, :map, default: %{})
|
||||
add(:data, :map, default: %{})
|
||||
|
||||
timestamps()
|
||||
end
|
||||
|
||||
create_if_not_exists(unique_index(:data_migrations, [:name]))
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
defmodule Pleroma.Repo.Migrations.DataMigrationCreatePopulateHashtagsTable do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
dt = NaiveDateTime.utc_now()
|
||||
|
||||
execute(
|
||||
"INSERT INTO data_migrations(name, inserted_at, updated_at) " <>
|
||||
"VALUES ('populate_hashtags_table', '#{dt}', '#{dt}') ON CONFLICT DO NOTHING;"
|
||||
)
|
||||
end
|
||||
|
||||
def down, do: :ok
|
||||
end
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
defmodule Pleroma.Repo.Migrations.CreateDataMigrationFailedIds do
|
||||
use Ecto.Migration
|
||||
|
||||
def change do
|
||||
create_if_not_exists table(:data_migration_failed_ids, primary_key: false) do
|
||||
add(:data_migration_id, references(:data_migrations), null: false)
|
||||
add(:record_id, :bigint, null: false)
|
||||
end
|
||||
|
||||
create_if_not_exists(
|
||||
unique_index(:data_migration_failed_ids, [:data_migration_id, :record_id])
|
||||
)
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue