mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-29 12:09:20 +03:00
Small pab schema fixes
This commit is contained in:
parent
86b5e7392a
commit
a023ad801c
3 changed files with 35 additions and 63 deletions
|
|
@ -672,7 +672,6 @@ class MySqlPersonalAddressBookDriver
|
|||
'CREATE TABLE IF NOT EXISTS `rainloop_pab_tags` (
|
||||
|
||||
`id_tag` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`id_contact` int(11) UNSIGNED NOT NULL,
|
||||
`id_user` int(11) UNSIGNED NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
|
||||
|
|
|
|||
|
|
@ -1,38 +1,40 @@
|
|||
-- RainLoop Webmail initial contacts database structure
|
||||
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=0 */;
|
||||
|
||||
-- Table structure for table `rainloop_system`
|
||||
-- rainloop_system --
|
||||
CREATE TABLE IF NOT EXISTS `rainloop_system` (
|
||||
`name` varchar(50) NOT NULL,
|
||||
`sys_name` varchar(50) NOT NULL,
|
||||
`value_int` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`value_str` varchar(255) NOT NULL DEFAULT ''
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
-- Table structure for table `rainloop_users`
|
||||
-- rainloop_users --
|
||||
CREATE TABLE IF NOT EXISTS `rainloop_users` (
|
||||
`id_user` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`email` varchar(255) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
|
||||
|
||||
UNIQUE `email_unique` (`email`),
|
||||
`rl_email` varchar(255) NOT NULL,
|
||||
UNIQUE `email_unique` (`rl_email`),
|
||||
PRIMARY KEY(`id_user`)
|
||||
) /*!40000 ENGINE=INNODB */;
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */;
|
||||
|
||||
-- Table structure for table `rainloop_pab_contacts`
|
||||
-- rainloop_pab_contacts --
|
||||
CREATE TABLE IF NOT EXISTS `rainloop_pab_contacts` (
|
||||
|
||||
`id_contact` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`id_user` int(11) UNSIGNED NOT NULL,
|
||||
`display_in_list` varchar(255) NOT NULL DEFAULT '',
|
||||
`type` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`display` varchar(255) NOT NULL DEFAULT '',
|
||||
`display_name` varchar(255) NOT NULL DEFAULT '',
|
||||
`display_email` varchar(255) NOT NULL DEFAULT '',
|
||||
`auto` int(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`changed` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
|
||||
PRIMARY KEY(`id_contact`),
|
||||
CONSTRAINT `id_user_fk_rainloop_pab_contacts` FOREIGN KEY (`id_user`)
|
||||
REFERENCES `rainloop_users` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`id_contact`)
|
||||
REFERENCES `rainloop_users` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
-- Table structure for table `rainloop_pab_prop`
|
||||
-- rainloop_pab_prop --
|
||||
CREATE TABLE IF NOT EXISTS `rainloop_pab_prop` (
|
||||
|
||||
`id_prop` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`id_contact` int(11) UNSIGNED NOT NULL,
|
||||
`id_user` int(11) UNSIGNED NOT NULL,
|
||||
|
|
@ -42,68 +44,39 @@ CREATE TABLE IF NOT EXISTS `rainloop_pab_prop` (
|
|||
`value_custom` varchar(255) NOT NULL DEFAULT '',
|
||||
`frec` int(11) UNSIGNED NOT NULL DEFAULT '0',
|
||||
|
||||
PRIMARY KEY(`id_prop`),
|
||||
INDEX `id_user_id_contact_index` (`id_user`, `id_contact`),
|
||||
INDEX `id_user_value_index` (`id_user`, `value`),
|
||||
CONSTRAINT `id_contact_fk_rainloop_pab_prop` FOREIGN KEY (`id_contact`)
|
||||
REFERENCES `rainloop_pab_contacts` (`id_contact`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
-- Table structure for table `rainloop_pab_tags`
|
||||
-- rainloop_pab_tags --
|
||||
CREATE TABLE IF NOT EXISTS `rainloop_pab_tags` (
|
||||
|
||||
`id_tag` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`id_contact` int(11) UNSIGNED NOT NULL,
|
||||
`id_user` int(11) UNSIGNED NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
|
||||
PRIMARY KEY(`id_tag`),
|
||||
UNIQUE `id_user_name_unique` (`id_user`, `name`),
|
||||
CONSTRAINT `id_user_fk_rainloop_pab_tags` FOREIGN KEY (`id_user`)
|
||||
REFERENCES `rainloop_users` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY(`id_tag`)
|
||||
REFERENCES `rainloop_users` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
-- Table structure for table `rainloop_pab_tags_contacts`
|
||||
-- rainloop_pab_tags_contacts --
|
||||
CREATE TABLE IF NOT EXISTS `rainloop_pab_tags_contacts` (
|
||||
|
||||
`id_tag` int(11) UNSIGNED NOT NULL,
|
||||
`id_contact` int(11) UNSIGNED NOT NULL,
|
||||
|
||||
UNIQUE `id_user_name_unique` (`id_user`, `name`),
|
||||
CONSTRAINT `id_contact_fk_rainloop_tags_contacts` FOREIGN KEY (`id_contact`)
|
||||
REFERENCES `rainloop_pab_contacts` (`id_contact`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT `id_tag_fk_rainloop_tags_contacts` FOREIGN KEY (`id_tag`)
|
||||
REFERENCES `rainloop_pab_tags` (`id_tag`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
|
||||
|
||||
-- RainLoop Webmail update contacts database structure
|
||||
|
||||
DELIMITER $$
|
||||
|
||||
DROP PROCEDURE IF EXISTS rainloop_pab_upgrade_database $$
|
||||
|
||||
CREATE PROCEDURE rainloop_pab_upgrade_database()
|
||||
BEGIN
|
||||
DECLARE new_version INT DEFAULT 1;
|
||||
DECLARE current_version INT DEFAULT 0;
|
||||
SELECT IFNULL(MAX(`value_int`), 0) INTO current_version FROM `rainloop_system` WHERE `name` = 'rainloop-pab-db-version';
|
||||
|
||||
-- TODO
|
||||
--
|
||||
-- IF current_version < 1 THEN
|
||||
-- ALTER TABLE `rainloop_pab_prop` ADD INDEX `id_user_id_contact_index` (`id_user`, `id_contact`);
|
||||
-- END IF;
|
||||
--
|
||||
-- IF current_version < 2 THEN
|
||||
-- ALTER TABLE `rainloop_pab_prop` ADD INDEX `id_user_id_contact_index` (`id_user`, `id_contact`);
|
||||
-- END IF;
|
||||
|
||||
DELETE FROM `rainloop_system` WHERE `name` = 'rainloop-pab-db-version' AND `value_int` <= new_version;
|
||||
INSERT INTO `rainloop_system` (`name`, `value_int`) VALUES ('rainloop-pab-db-version', new_version);
|
||||
END$$
|
||||
|
||||
-- TODO
|
||||
-- CALL rainloop_pab_upgrade_database() $$
|
||||
|
||||
DROP PROCEDURE IF EXISTS rainloop_pab_upgrade_database $$
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
|
||||
|
|
|
|||
|
|
@ -315,17 +315,17 @@ abstract class PdoAbstract
|
|||
if ('mysql' === $this->sDbType)
|
||||
{
|
||||
$aQ[] = 'CREATE TABLE IF NOT EXISTS `rainloop_system` (
|
||||
`sys_name` varchar(50) NOT NULL,
|
||||
`value_int` int(11) UNSIGNED NOT NULL DEFAULT \'0\',
|
||||
`value_str` varchar(255) NOT NULL DEFAULT \'\'
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;';
|
||||
`sys_name` varchar(50) NOT NULL,
|
||||
`value_int` int(11) UNSIGNED NOT NULL DEFAULT \'0\',
|
||||
`value_str` varchar(255) NOT NULL DEFAULT \'\'
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;';
|
||||
|
||||
$aQ[] = 'CREATE TABLE IF NOT EXISTS `rainloop_users` (
|
||||
`id_user` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`rl_email` varchar(255) NOT NULL,
|
||||
UNIQUE `email_unique` (`rl_email`),
|
||||
PRIMARY KEY(`id_user`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ ;';
|
||||
`id_user` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`rl_email` varchar(255) NOT NULL,
|
||||
UNIQUE `email_unique` (`rl_email`),
|
||||
PRIMARY KEY(`id_user`)
|
||||
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */;';
|
||||
}
|
||||
|
||||
if (0 < \count($aQ))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue