Packages
blossom
0.23.2
0.29.3
0.29.2
0.29.1
0.29.0
0.28.0
0.27.3
0.27.2
0.27.1
0.27.0
0.26.3
0.26.2
0.26.1
0.26.0
0.25.3
0.25.2
0.25.1
0.25.0
0.24.1
0.24.0
0.23.5
0.23.4
0.23.3
0.23.2
0.23.1
0.23.0
0.22.1
0.22.0
0.21.8
0.21.7
0.21.6
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Easy identity for easy authentication
Current section
Files
Jump to
Current section
Files
lib/blossom/migrations/postgres/v01.ex
defmodule Blossom.Migrations.Postgres.V01 do
use Ecto.Migration
def up(_opts) do
execute("CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";")
create_if_not_exists table(:users, primary_key: false) do
add(:id, :uuid,
primary_key: true,
default: fragment("uuid_generate_v4()")
)
add(:blocked, :boolean, null: false, default: false)
add(:email, :string, null: false)
add(:email_verified, :boolean)
add(:password, :string, null: false)
add(:username, :string)
add(:inserted_at, :naive_datetime,
null: false,
default: fragment("now()")
)
add(:updated_at, :naive_datetime, null: false, default: fragment("now()"))
end
create(unique_index(:users, [:email]))
create(unique_index(:users, [:username]))
create_if_not_exists table(:organizations, primary_key: false) do
add(:id, :uuid,
primary_key: true,
default: fragment("uuid_generate_v4()")
)
add(:enabled, :boolean)
add(:name, :string)
add(:slug, :string)
add(:inserted_at, :naive_datetime,
null: false,
default: fragment("now()")
)
add(:updated_at, :naive_datetime, null: false, default: fragment("now()"))
end
create(unique_index(:organizations, [:slug]))
create_if_not_exists table(:organizations_roles, primary_key: false) do
add(:id, :uuid,
primary_key: true,
default: fragment("uuid_generate_v4()")
)
add(
:organization,
references(:organizations, type: :uuid, on_delete: :delete_all),
null: false
)
add(
:user,
references(:users, type: :uuid, on_delete: :delete_all),
null: false
)
add(:role, :string, null: false)
add(:inserted_at, :naive_datetime,
null: false,
default: fragment("now()")
)
add(:updated_at, :naive_datetime, null: false, default: fragment("now()"))
end
create(unique_index(:organizations_roles, [:organization, :user, :role]))
create_if_not_exists table(:verification_codes, primary_key: false) do
add(:id, :uuid,
primary_key: true,
default: fragment("uuid_generate_v4()")
)
add(:code, :string, null: false)
add(:kind, :string, null: false)
add(:expiration, :integer, null: false)
add(:user, references(:users, type: :uuid, on_delete: :delete_all),
null: false
)
add(:inserted_at, :naive_datetime,
null: false,
default: fragment("now()")
)
add(:updated_at, :naive_datetime, null: false, default: fragment("now()"))
end
create(unique_index(:verification_codes, [:code]))
end
def down(_opts) do
drop_if_exists(table(:verification_codes))
drop_if_exists(table(:organizations_roles))
drop_if_exists(table(:organizations))
drop_if_exists(table(:users))
execute("DROP EXTENSION IF EXISTS \"uuid-ossp\";")
end
end