209 lines
8.4 KiB
MySQL
209 lines
8.4 KiB
MySQL
|
PRAGMA foreign_keys=off;
|
||
|
|
||
|
BEGIN TRANSACTION;
|
||
|
|
||
|
ALTER TABLE `tblDocumentContent` ADD COLUMN `revisiondate` TEXT default NULL;
|
||
|
|
||
|
ALTER TABLE `tblUsers` ADD COLUMN `secret` varchar(50) default NULL;
|
||
|
|
||
|
ALTER TABLE `tblWorkflows` ADD COLUMN `layoutdata` text default NULL;
|
||
|
|
||
|
CREATE TABLE `new_tblWorkflowDocumentContent` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`parent` INTEGER DEFAULT NULL REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE,
|
||
|
`workflow` INTEGER DEFAULT NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
|
||
|
`document` INTEGER DEFAULT NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
|
||
|
`version` INTEGER DEFAULT NULL,
|
||
|
`state` INTEGER DEFAULT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
|
||
|
`date` datetime NOT NULL
|
||
|
) ;
|
||
|
|
||
|
INSERT INTO `new_tblWorkflowDocumentContent` (`parent`, `workflow`, `document`, `version`, `state`, `date`) SELECT NULL as `parent`, `workflow`, `document`, `version`, `state`, `date` FROM `tblWorkflowDocumentContent`;
|
||
|
|
||
|
INSERT INTO `new_tblWorkflowDocumentContent` (`parent`, `workflow`, `document`, `version`, `state`, `date`) SELECT NULL, `a`.`workflow`, `a`.`document`, `a`.`version`, NULL AS `state`, max(`a`.`date`) FROM `tblWorkflowLog` `a` LEFT JOIN `tblWorkflowDocumentContent` `b` ON `a`.`document`=`b`.`document` AND `a`.`version`=`b`.`version` AND `a`.`workflow`=`b`.`workflow` WHERE `b`.`document` IS NULL GROUP BY `a`.`document`, `a`.`version`, `a`.`workflow`;
|
||
|
|
||
|
CREATE TABLE `new_tblWorkflowLog` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`workflowdocumentcontent` INTEGER DEFAULT NULL REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE,
|
||
|
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||
|
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
|
||
|
`date` datetime NOT NULL,
|
||
|
`comment` text
|
||
|
) ;
|
||
|
|
||
|
INSERT INTO `new_tblWorkflowLog` (`id`, `workflowdocumentcontent`, `userid`, `transition`, `date`, `comment`) SELECT `a`.`id`, `b`.`id`, `a`.`userid`, `a`.`transition`, `a`.`date`, `a`.`comment` FROM `tblWorkflowLog` `a` LEFT JOIN `new_tblWorkflowDocumentContent` `b` ON `a`.`document`=`b`.`document` AND `a`.`version`=`b`.`version` AND `a`.`workflow`=`b`.`workflow` WHERE `b`.`document` IS NOT NULL;
|
||
|
|
||
|
DROP TABLE `tblWorkflowLog`;
|
||
|
|
||
|
ALTER TABLE `new_tblWorkflowLog` RENAME TO `tblWorkflowLog`;
|
||
|
|
||
|
DROP TABLE `tblWorkflowDocumentContent`;
|
||
|
|
||
|
ALTER TABLE `new_tblWorkflowDocumentContent` RENAME TO `tblWorkflowDocumentContent`;
|
||
|
|
||
|
CREATE TABLE `tblUserSubstitutes` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`user` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||
|
`substitute` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||
|
UNIQUE (`user`, `substitute`)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE `tblDocumentCheckOuts` (
|
||
|
`document` INTEGER REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
|
||
|
`version` INTEGER unsigned NOT NULL default '0',
|
||
|
`userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`),
|
||
|
`date` TEXT NOT NULL,
|
||
|
`filename` varchar(255) NOT NULL default '',
|
||
|
UNIQUE (`document`)
|
||
|
) ;
|
||
|
|
||
|
CREATE TABLE `tblDocumentRecipients` (
|
||
|
`receiptID` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
|
||
|
`version` INTEGER unsigned NOT NULL default '0',
|
||
|
`type` INTEGER NOT NULL default '0',
|
||
|
`required` INTEGER NOT NULL default '0',
|
||
|
UNIQUE (`documentID`,`version`,`type`,`required`)
|
||
|
) ;
|
||
|
CREATE INDEX `indDocumentRecipientsRequired` ON `tblDocumentRecipients` (`required`);
|
||
|
|
||
|
CREATE TABLE `tblDocumentReceiptLog` (
|
||
|
`receiptLogID` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`receiptID` INTEGER NOT NULL default 0 REFERENCES `tblDocumentRecipients` (`receiptID`) ON DELETE CASCADE,
|
||
|
`status` INTEGER NOT NULL default 0,
|
||
|
`comment` TEXT NOT NULL,
|
||
|
`date` TEXT NOT NULL,
|
||
|
`userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
|
||
|
) ;
|
||
|
CREATE INDEX `indDocumentReceiptLogReceiptID` ON `tblDocumentReceiptLog` (`receiptID`);
|
||
|
|
||
|
CREATE TABLE `tblDocumentRevisors` (
|
||
|
`revisionID` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
|
||
|
`version` INTEGER unsigned NOT NULL default '0',
|
||
|
`type` INTEGER NOT NULL default '0',
|
||
|
`required` INTEGER NOT NULL default '0',
|
||
|
`startdate` TEXT default NULL,
|
||
|
UNIQUE (`documentID`,`version`,`type`,`required`)
|
||
|
) ;
|
||
|
CREATE INDEX `indDocumentRevisorsRequired` ON `tblDocumentRevisors` (`required`);
|
||
|
|
||
|
CREATE TABLE `tblDocumentRevisionLog` (
|
||
|
`revisionLogID` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`revisionID` INTEGER NOT NULL default 0 REFERENCES `tblDocumentRevisors` (`revisionID`) ON DELETE CASCADE,
|
||
|
`status` INTEGER NOT NULL default 0,
|
||
|
`comment` TEXT NOT NULL,
|
||
|
`date` TEXT NOT NULL,
|
||
|
`userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
|
||
|
) ;
|
||
|
CREATE INDEX `indDocumentRevisionLogRevisionID` ON `tblDocumentRevisionLog` (`revisionID`);
|
||
|
|
||
|
CREATE TABLE `tblTransmittals` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`name` text NOT NULL,
|
||
|
`comment` text NOT NULL,
|
||
|
`userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
|
||
|
`date` TEXT default NULL,
|
||
|
`public` INTEGER NOT NULL default '0'
|
||
|
);
|
||
|
|
||
|
CREATE TABLE `tblTransmittalItems` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`transmittal` INTEGER NOT NULL DEFAULT '0' REFERENCES `tblTransmittals` (`id`) ON DELETE CASCADE,
|
||
|
`document` INTEGER default NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
|
||
|
`version` INTEGER unsigned NOT NULL default '0',
|
||
|
`date` TEXT default NULL,
|
||
|
UNIQUE (transmittal, document, version)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE `tblRoles` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`name` varchar(50) default NULL,
|
||
|
`role` INTEGER NOT NULL default '0',
|
||
|
`noaccess` varchar(30) NOT NULL default '',
|
||
|
UNIQUE (`name`)
|
||
|
);
|
||
|
|
||
|
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (1, 'Admin', 1);
|
||
|
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (2, 'Guest', 2);
|
||
|
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (3, 'User', 0);
|
||
|
|
||
|
UPDATE `tblUsers` SET role=3 WHERE role=0;
|
||
|
|
||
|
CREATE TABLE `new_tblUsers` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`login` varchar(50) default NULL,
|
||
|
`pwd` varchar(50) default NULL,
|
||
|
`fullName` varchar(100) default NULL,
|
||
|
`email` varchar(70) default NULL,
|
||
|
`language` varchar(32) NOT NULL,
|
||
|
`theme` varchar(32) NOT NULL,
|
||
|
`comment` text NOT NULL,
|
||
|
`role` INTEGER NOT NULL REFERENCES `tblRoles` (`id`),
|
||
|
`hidden` INTEGER NOT NULL default '0',
|
||
|
`pwdExpiration` TEXT default NULL,
|
||
|
`loginfailures` INTEGER NOT NULL default '0',
|
||
|
`disabled` INTEGER NOT NULL default '0',
|
||
|
`quota` INTEGER,
|
||
|
`homefolder` INTEGER default NULL REFERENCES `tblFolders` (`id`),
|
||
|
`secret` varchar(50) default NULL,
|
||
|
UNIQUE (`login`)
|
||
|
);
|
||
|
|
||
|
INSERT INTO new_tblUsers SELECT * FROM tblUsers;
|
||
|
|
||
|
DROP TABLE tblUsers;
|
||
|
|
||
|
ALTER TABLE new_tblUsers RENAME TO tblUsers;
|
||
|
|
||
|
CREATE TABLE `tblAros` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`parent` INTEGER,
|
||
|
`model` TEXT NOT NULL,
|
||
|
`foreignid` INTEGER NOT NULL DEFAULT '0',
|
||
|
`alias` TEXT
|
||
|
) ;
|
||
|
|
||
|
CREATE TABLE `tblAcos` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`parent` INTEGER,
|
||
|
`model` TEXT NOT NULL,
|
||
|
`foreignid` INTEGER NOT NULL DEFAULT '0',
|
||
|
`alias` TEXT
|
||
|
) ;
|
||
|
|
||
|
CREATE TABLE `tblArosAcos` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`aro` INTEGER NOT NULL DEFAULT '0' REFERENCES `tblAros` (`id`) ON DELETE CASCADE,
|
||
|
`aco` INTEGER NOT NULL DEFAULT '0' REFERENCES `tblAcos` (`id`) ON DELETE CASCADE,
|
||
|
`create` INTEGER NOT NULL DEFAULT '-1',
|
||
|
`read` INTEGER NOT NULL DEFAULT '-1',
|
||
|
`update` INTEGER NOT NULL DEFAULT '-1',
|
||
|
`delete` INTEGER NOT NULL DEFAULT '-1',
|
||
|
UNIQUE (aco, aro)
|
||
|
) ;
|
||
|
|
||
|
CREATE INDEX `indDocumentStatusLogStatusID` ON `tblDocumentStatusLog` (`StatusID`);
|
||
|
CREATE INDEX `indDocumentApproversRequired` ON `tblDocumentApprovers` (`required`);
|
||
|
CREATE INDEX `indDocumentApproveLogApproveID` ON `tblDocumentApproveLog` (`approveID`);
|
||
|
CREATE INDEX `indDocumentReviewersRequired` ON `tblDocumentReviewers` (`required`);
|
||
|
CREATE INDEX `indDocumentReviewLogReviewID` ON `tblDocumentReviewLog` (`reviewID`);
|
||
|
|
||
|
CREATE TABLE `tblSchedulerTask` (
|
||
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
`name` varchar(100) DEFAULT NULL,
|
||
|
`description` TEXT DEFAULT NULL,
|
||
|
`disabled` INTEGER NOT NULL DEFAULT '0',
|
||
|
`extension` varchar(100) DEFAULT NULL,
|
||
|
`task` varchar(100) DEFAULT NULL,
|
||
|
`frequency` varchar(100) DEFAULT NULL,
|
||
|
`params` TEXT DEFAULT NULL,
|
||
|
`nextrun` TEXT DEFAULT NULL,
|
||
|
`lastrun` TEXT DEFAULT NULL
|
||
|
) ;
|
||
|
|
||
|
UPDATE tblVersion set major=6, minor=0, subminor=0;
|
||
|
|
||
|
COMMIT;
|
||
|
|
||
|
PRAGMA foreign_keys=on;
|