Eerste commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
-- MijnBesluit - bijlagen bij kluisitems
|
||||
--
|
||||
-- Voegt twee kolommen toe aan `vault_files`:
|
||||
-- vault_item_id : bij welk kluisitem dit bestand hoort. Leeg bij een bestand dat op zichzelf
|
||||
-- staat, zoals de opname bij een videobericht.
|
||||
-- deleted_at : gevuld zodra het bestand verwijderd is.
|
||||
--
|
||||
-- Draaien met:
|
||||
-- mysql -u root -p mijnbesluit < db\04_bijlagen.sql
|
||||
--
|
||||
-- Opnieuw draaien mag: er gebeurt dan niets.
|
||||
|
||||
USE `mijnbesluit`;
|
||||
|
||||
-- ---------------------------------------------------------------- vault_item_id
|
||||
SET @bestaat := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'vault_files' AND COLUMN_NAME = 'vault_item_id');
|
||||
|
||||
SET @sql := IF(@bestaat = 0,
|
||||
'ALTER TABLE `vault_files` ADD COLUMN `vault_item_id` BIGINT NULL AFTER `owner_person_id`',
|
||||
'SELECT "vault_item_id bestaat al" AS melding');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- ---------------------------------------------------------------- deleted_at
|
||||
SET @bestaat := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'vault_files' AND COLUMN_NAME = 'deleted_at');
|
||||
|
||||
SET @sql := IF(@bestaat = 0,
|
||||
'ALTER TABLE `vault_files` ADD COLUMN `deleted_at` DATETIME(3) NULL',
|
||||
'SELECT "deleted_at bestaat al" AS melding');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- ---------------------------------------------------------------- index + relatie
|
||||
SET @bestaat := (
|
||||
SELECT COUNT(*) FROM information_schema.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'vault_files' AND INDEX_NAME = 'ix_vault_files_item');
|
||||
|
||||
SET @sql := IF(@bestaat = 0,
|
||||
'CREATE INDEX `ix_vault_files_item` ON `vault_files` (`vault_item_id`)',
|
||||
'SELECT "index bestaat al" AS melding');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- Verdwijnt het kluisitem, dan verdwijnt de koppeling; het bestand zelf ruimt de applicatie op.
|
||||
SET @bestaat := (
|
||||
SELECT COUNT(*) FROM information_schema.TABLE_CONSTRAINTS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'vault_files' AND CONSTRAINT_NAME = 'fk_vf_item');
|
||||
|
||||
SET @sql := IF(@bestaat = 0,
|
||||
'ALTER TABLE `vault_files` ADD CONSTRAINT `fk_vf_item` FOREIGN KEY (`vault_item_id`) REFERENCES `vault_items` (`id`) ON DELETE SET NULL',
|
||||
'SELECT "fk_vf_item bestaat al" AS melding');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
SELECT 'Klaar: bijlagen toegevoegd aan vault_files.' AS melding;
|
||||
Reference in New Issue
Block a user