Add database schema and migration tasks

This commit is contained in:
julien committed 2026-11-02 14:08:29 +01:00
1 parent 7a4805f749
commit cde8e13705
5 files changed
+94 -7

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
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