This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Incam_SGD/sql/mysql/upgrade/2.99.1/fieldsets.sql

99 lines
3.7 KiB
SQL

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE `document_fieldsets`;
DROP TABLE `zseq_document_fieldsets`;
ALTER TABLE `document_type_fieldsets_link` DROP COLUMN `is_mandatory`; # was tinyint(1) NOT NULL default '0'
ALTER TABLE `folders` ADD COLUMN `restrict_document_types` tinyint(1) NOT NULL default '0';
CREATE TABLE `field_behaviour_options` (
`behaviour_id` int(11) NOT NULL default '0',
`field_id` int(11) NOT NULL default '0',
`instance_id` int(11) NOT NULL default '0',
KEY `behaviour_id` (`behaviour_id`),
KEY `field_id` (`field_id`),
KEY `instance_id` (`instance_id`),
CONSTRAINT `field_behaviour_options_ibfk_1` FOREIGN KEY (`behaviour_id`) REFERENCES `field_behaviours` (`id`) ON DELETE CASCADE,
CONSTRAINT `field_behaviour_options_ibfk_2` FOREIGN KEY (`field_id`) REFERENCES `document_fields` (`id`) ON DELETE CASCADE,
CONSTRAINT `field_behaviour_options_ibfk_3` FOREIGN KEY (`instance_id`) REFERENCES `field_value_instances` (`id`) ON DELETE CASCADE
) TYPE=InnoDB;
CREATE TABLE `field_behaviours` (
`id` int(11) NOT NULL default '0',
`name` char(255) NOT NULL default '',
`human_name` char(100) NOT NULL default '',
`field_id` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `field_id` (`field_id`),
KEY `name` (`name`),
CONSTRAINT `field_behaviours_ibfk_1` FOREIGN KEY (`field_id`) REFERENCES `document_fields` (`id`)
) TYPE=InnoDB;
CREATE TABLE `field_orders` (
`parent_field_id` int(11) NOT NULL default '0',
`child_field_id` int(11) NOT NULL default '0',
`fieldset_id` int(11) NOT NULL default '0',
UNIQUE KEY `child_field` (`child_field_id`),
KEY `parent_field` (`parent_field_id`),
KEY `fieldset_id` (`fieldset_id`)
) TYPE=InnoDB;
CREATE TABLE `field_value_instances` (
`id` int(11) NOT NULL default '0',
`field_id` int(11) NOT NULL default '0',
`field_value_id` int(11) NOT NULL default '0',
`behaviour_id` int(11) default '0',
PRIMARY KEY (`id`),
KEY `field_id` (`field_id`),
KEY `field_value_id` (`field_value_id`),
KEY `behaviour_id` (`behaviour_id`)
) TYPE=InnoDB;
CREATE TABLE `fieldsets` (
`id` int(11) NOT NULL default '0',
`name` char(255) NOT NULL default '',
`namespace` char(255) NOT NULL default '',
`mandatory` tinyint(4) NOT NULL default '0',
`is_conditional` tinyint(1) NOT NULL default '0',
`master_field` int(11) default NULL,
`is_generic` tinyint(1) NOT NULL default '0',
UNIQUE KEY `id` (`id`),
KEY `is_generic` (`is_generic`)
) TYPE=InnoDB;
CREATE TABLE `zseq_document_type_fieldsets_link` (
`id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
CREATE TABLE `zseq_field_behaviours` (
`id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
CREATE TABLE `zseq_field_value_instances` (
`id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
CREATE TABLE `zseq_fieldsets` (
`id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
ALTER TABLE `document_fields` TYPE=InnoDB;
ALTER TABLE `document_fields` ADD INDEX `parent_fieldset` (`parent_fieldset`);
-- CLEAROUT ANY BROKEN RECORDS PRIOR TO ASSIGNING CONSTRAINT
DELETE FROM `document_fields` as df USING `document_fields` as df, fieldsets
WHERE not exists(select 1 from `fieldsets` as f where df.parent_fieldset = f.id);
-- ADD CONSTRAINT
ALTER TABLE `document_fields` ADD CONSTRAINT `document_fields_ibfk_1` FOREIGN KEY (`parent_fieldset`) REFERENCES `fieldsets` (`id`) ON DELETE CASCADE;
ALTER TABLE `fieldsets` ADD COLUMN `is_complex` tinyint(1) NOT NULL default '0';
ALTER TABLE `fieldsets` ADD COLUMN `is_complete` tinyint(1) NOT NULL default '1';
ALTER TABLE `fieldsets` ADD INDEX `is_complete` (`is_complete`);
SET FOREIGN_KEY_CHECKS=1;