Files
netig.net/db/migrations/001_create_rodauth_tables.rb
T
2026-11-03 10:47:07 +01:00

71 lines
1.4 KiB
Ruby

Sequel.migration do
up do
create_table(:account_statuses) do
Integer :id, primary_key: true
String :name, null: false, unique: true
end
from(:account_statuses).import(
[:id, :name],
[
[1, "Unverified"],
[2, "Verified"],
[3, "Closed"]
]
)
db = self
create_table(:accounts) do
primary_key :id, type: :Bignum
foreign_key :status_id, :account_statuses,
null: false,
default: 1
String :email, null: false
if db.supports_partial_indexes?
index :email, unique: true, where: { status_id: [1, 2] }
else
index :email, unique: true
end
end
create_table(:account_password_hashes) do
foreign_key :id, :accounts,
primary_key: true,
type: :Bignum,
on_delete: :cascade
String :password_hash, null: false
end
create_table(:account_verification_keys) do
foreign_key :id, :accounts,
primary_key: true,
type: :Bignum,
on_delete: :cascade
String :key, null: false
DateTime :requested_at,
null: false,
default: Sequel::CURRENT_TIMESTAMP
DateTime :email_last_sent,
null: false,
default: Sequel::CURRENT_TIMESTAMP
end
end
down do
drop_table(
:account_verification_keys,
:account_password_hashes,
:accounts,
:account_statuses
)
end
end