Files
netig.net/db/migrations/002_create_members.rb
T

36 lines
959 B
Ruby

Sequel.migration do
up do
create_table(:members) do
primary_key :id, type: :Bignum
foreign_key :account_id, :accounts,
type: :Bignum,
null: false
String :kind, null: false
String :first_name
String :last_name
String :organization_name
index :account_id, unique: true
constraint :members_kind_valid,
Sequel.lit("kind IN ('individual', 'organization')")
constraint :members_identity_matches_kind,
Sequel.lit(
"(kind = 'individual' AND first_name IS NOT NULL " \
"AND trim(first_name) <> '' AND last_name IS NOT NULL " \
"AND trim(last_name) <> '' AND organization_name IS NULL) " \
"OR (kind = 'organization' AND first_name IS NULL " \
"AND last_name IS NULL AND organization_name IS NOT NULL " \
"AND trim(organization_name) <> '')"
)
end
end
down do
drop_table(:members)
end
end