defmodule Pleroma.Repo.Migrations.ChangeAppsScopesToVarcharArray do
  use Ecto.Migration

  @alter_apps_scopes "ALTER TABLE apps ALTER COLUMN scopes"

  def up do
    execute "#{@alter_apps_scopes} TYPE varchar(255)[] USING string_to_array(scopes, ',')::varchar(255)[];"
    execute "#{@alter_apps_scopes} SET DEFAULT ARRAY[]::character varying[];"
    execute "#{@alter_apps_scopes} SET NOT NULL;"
  end

  def down do
    execute "#{@alter_apps_scopes} DROP NOT NULL;"
    execute "#{@alter_apps_scopes} DROP DEFAULT;"
    execute "#{@alter_apps_scopes} TYPE varchar(255) USING array_to_string(scopes, ',')::varchar(255);"
  end
end
