init push

This commit is contained in:
2026-07-16 22:16:45 +07:00
commit 8b068bdb10
1021 changed files with 332816 additions and 0 deletions

View File

@@ -0,0 +1,119 @@
-- +goose Up
-- Remove deprecated nationality module storage.
SET @drop_fk_nationality := (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'patient_data'
AND COLUMN_NAME = 'nationality_id'
AND REFERENCED_TABLE_NAME IS NOT NULL
),
(
SELECT CONCAT('ALTER TABLE patient_data DROP FOREIGN KEY ', CONSTRAINT_NAME)
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'patient_data'
AND COLUMN_NAME = 'nationality_id'
AND REFERENCED_TABLE_NAME IS NOT NULL
LIMIT 1
),
'SELECT 1'
)
);
PREPARE stmt_drop_fk_nationality FROM @drop_fk_nationality;
EXECUTE stmt_drop_fk_nationality;
DEALLOCATE PREPARE stmt_drop_fk_nationality;
SET @drop_idx_nationality := (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'patient_data'
AND INDEX_NAME = 'idx_patient_data_nationality_id'
),
'ALTER TABLE patient_data DROP INDEX idx_patient_data_nationality_id',
'SELECT 1'
)
);
PREPARE stmt_drop_idx_nationality FROM @drop_idx_nationality;
EXECUTE stmt_drop_idx_nationality;
DEALLOCATE PREPARE stmt_drop_idx_nationality;
SET @drop_col_nationality := (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'patient_data'
AND COLUMN_NAME = 'nationality_id'
),
'ALTER TABLE patient_data DROP COLUMN nationality_id',
'SELECT 1'
)
);
PREPARE stmt_drop_col_nationality FROM @drop_col_nationality;
EXECUTE stmt_drop_col_nationality;
DEALLOCATE PREPARE stmt_drop_col_nationality;
DROP TABLE IF EXISTS nationalities;
-- +goose Down
-- Recreate minimal nationality storage.
CREATE TABLE IF NOT EXISTS nationalities (
id BINARY(16) NOT NULL PRIMARY KEY,
land_id BINARY(16) NULL,
name VARCHAR(128) NOT NULL,
sortkey INT NULL,
is_active TINYINT(1) NOT NULL DEFAULT 1,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
created_by BINARY(16) NULL,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
updated_by BINARY(16) NULL,
deleted_at DATETIME NULL,
deleted_by BINARY(16) NULL,
KEY idx_nationalities_land_id (land_id),
KEY idx_nationalities_sortkey (sortkey),
KEY idx_nationalities_is_active (is_active),
KEY idx_nationalities_deleted_at (deleted_at)
);
SET @add_col_nationality := (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'patient_data'
AND COLUMN_NAME = 'nationality_id'
),
'SELECT 1',
'ALTER TABLE patient_data ADD COLUMN nationality_id BINARY(16) NULL AFTER co_insured'
)
);
PREPARE stmt_add_col_nationality FROM @add_col_nationality;
EXECUTE stmt_add_col_nationality;
DEALLOCATE PREPARE stmt_add_col_nationality;
SET @add_idx_nationality := (
SELECT IF(
EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'patient_data'
AND INDEX_NAME = 'idx_patient_data_nationality_id'
),
'SELECT 1',
'ALTER TABLE patient_data ADD KEY idx_patient_data_nationality_id (nationality_id)'
)
);
PREPARE stmt_add_idx_nationality FROM @add_idx_nationality;
EXECUTE stmt_add_idx_nationality;
DEALLOCATE PREPARE stmt_add_idx_nationality;