Commit 8b8c9c1fb444a7dff4c2aeee7512a897c015d393
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
Showing
1 changed file
with
13 additions
and
0 deletions
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; | ... | ... |