Commit 8b8c9c1fb444a7dff4c2aeee7512a897c015d393

Authored by conradverm
1 parent 6f20534f

KTS-1533

"Issues when trying to introduce db constraints during upgrades"
Fixed. Deleting broken references prior to applying constraints.
Reviewed by: Kevin Fourie

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@6206 c91229c3-7414-0410-bfa2-8a42b809f60b
sql/mysql/upgrade/2.99.3/document_fields_constraints.sql
... ... @@ -2,6 +2,19 @@ SET FOREIGN_KEY_CHECKS=0;
2 2 ALTER TABLE `document_fields_link` TYPE=InnoDB;
3 3 ALTER TABLE `document_fields_link` ADD INDEX `document_id` (`document_id`);
4 4 ALTER TABLE `document_fields_link` ADD INDEX `document_field_id` (`document_field_id`);
  5 +
  6 +-- CLEAROUT ANY BROKEN RECORDS PRIOR TO ASSIGNING CONSTRAINT
  7 +
  8 +DELETE FROM `document_fields_link` as dfl USING `document_fields_link` as dfl, documents
  9 + WHERE not exists(select 1 from `documents` as d where dfl.document_id = d.id);
  10 +
5 11 ALTER TABLE `document_fields_link` ADD CONSTRAINT `document_fields_link_ibfk_1` FOREIGN KEY (`document_id`) REFERENCES `documents` (`id`) ON DELETE CASCADE;
  12 +
  13 +-- CLEAROUT ANY BROKEN RECORDS PRIOR TO ASSIGNING CONSTRAINT
  14 +
  15 +DELETE FROM `document_fields_link` as dfl USING `document_fields_link` as dfl, document_fields
  16 + WHERE not exists(select 1 from `document_fields` as df where dfl.document_field_id = df.id);
  17 +
6 18 ALTER TABLE `document_fields_link` ADD CONSTRAINT `document_fields_link_ibfk_2` FOREIGN KEY (`document_field_id`) REFERENCES `document_fields` (`id`) ON DELETE CASCADE;
  19 +
7 20 SET FOREIGN_KEY_CHECKS=1;
... ...