24875eaeac
* [WIP] renamed current settings module and tables to have backup suffix * Created new settings table, schema, and context * Migrated from old settings module to new one * Removed settings backup modules * Added some tests and docs
30 lines
926 B
Elixir
30 lines
926 B
Elixir
defmodule Pinchflat.Repo.Migrations.CreateNewSettings do
|
|
use Ecto.Migration
|
|
|
|
def up do
|
|
create table(:settings) do
|
|
add :onboarding, :boolean, default: true, null: false
|
|
add :pro_enabled, :boolean, default: false, null: false
|
|
add :yt_dlp_version, :string
|
|
end
|
|
|
|
# Make an initial record because this will be the only one ever inserted
|
|
execute "INSERT INTO settings (onboarding, pro_enabled, yt_dlp_version) VALUES (true, false, NULL)"
|
|
|
|
# Set the value of onboarding to the previous version set in `settings_backup`
|
|
execute """
|
|
UPDATE settings
|
|
SET onboarding = COALESCE((SELECT value = 'true' FROM settings_backup WHERE name = 'onboarding'), true)
|
|
"""
|
|
|
|
execute """
|
|
UPDATE settings
|
|
SET pro_enabled = COALESCE((SELECT value = 'true' FROM settings_backup WHERE name = 'pro_enabled'), false)
|
|
"""
|
|
end
|
|
|
|
def down do
|
|
drop table(:settings)
|
|
end
|
|
end
|