From 137e53618be4f1149a45d339ea3f73254bce63e2 Mon Sep 17 00:00:00 2001 From: julien Date: Tue, 3 Nov 2026 10:47:07 +0100 Subject: [PATCH] Imrpove migrations --- db/migrations/001_create_rodauth_tables.rb | 6 ++++-- db/migrations/002_create_members.rb | 3 ++- db/migrations/003_create_memberships.rb | 10 ++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/db/migrations/001_create_rodauth_tables.rb b/db/migrations/001_create_rodauth_tables.rb index 3abe853..1cdbd60 100644 --- a/db/migrations/001_create_rodauth_tables.rb +++ b/db/migrations/001_create_rodauth_tables.rb @@ -35,7 +35,8 @@ Sequel.migration do create_table(:account_password_hashes) do foreign_key :id, :accounts, primary_key: true, - type: :Bignum + type: :Bignum, + on_delete: :cascade String :password_hash, null: false end @@ -43,7 +44,8 @@ Sequel.migration do create_table(:account_verification_keys) do foreign_key :id, :accounts, primary_key: true, - type: :Bignum + type: :Bignum, + on_delete: :cascade String :key, null: false diff --git a/db/migrations/002_create_members.rb b/db/migrations/002_create_members.rb index 9cdfcf7..d930de8 100644 --- a/db/migrations/002_create_members.rb +++ b/db/migrations/002_create_members.rb @@ -5,7 +5,8 @@ Sequel.migration do foreign_key :account_id, :accounts, type: :Bignum, - null: false + null: false, + on_delete: :cascade String :kind, null: false String :first_name diff --git a/db/migrations/003_create_memberships.rb b/db/migrations/003_create_memberships.rb index 3e8164d..ad226c4 100644 --- a/db/migrations/003_create_memberships.rb +++ b/db/migrations/003_create_memberships.rb @@ -5,7 +5,8 @@ Sequel.migration do foreign_key :member_id, :members, type: :Bignum, - null: false + null: false, + on_delete: :cascade String :status, null: false, default: "pending" @@ -16,13 +17,18 @@ Sequel.migration do DateTime :decided_at foreign_key :recorded_by, :members, - type: :Bignum + type: :Bignum, + null: true, + on_delete: :set_null + index :member_id, name: :memberships_member_id_all_index + index :recorded_by index :status # Un seul dossier en attente ou une seule adhésion acceptée. index :member_id, unique: true, + name: :memberships_active_member_id_index, where: { status: ["pending", "accepted"] } constraint :memberships_status_valid,