* [FIX] Fixed upgrade process. Thanks to @josedo_3010 for the feedback and testing!

* [ADD] Improved SQL file parsing for better install/upgrade handling.
This commit is contained in:
nuxsmin
2018-03-24 12:09:23 +01:00
parent c01ca9d3d5
commit 38630dc3bc
22 changed files with 55 additions and 786 deletions

View File

@@ -61,12 +61,12 @@ class ErrorController
*/
public function __construct(Container $container, $actionName)
{
$this->router = $container->get(Klein::class);
$this->view = $container->get(Template::class);
$this->view->setBase('error');
$this->router = $container->get(Klein::class);
$this->layoutHelper = $container->get(LayoutHelper::class);
$this->layoutHelper->getPublicLayout('error');
}
/**

View File

@@ -30,7 +30,7 @@ use SP\Core\Exceptions\SPException;
use SP\Storage\DatabaseConnectionData;
use SP\Storage\DBUtil;
use SP\Storage\FileHandler;
use SP\Storage\MysqlFileParser;
use SP\Storage\MySQLFileParser;
use SP\Storage\MySQLHandler;
use SP\Util\Util;
@@ -296,7 +296,7 @@ class MySQL implements DatabaseSetupInterface
}
foreach ((new MysqlFileParser())
foreach ((new MySQLFileParser())
->parse(new FileHandler($fileName)) as $query) {
try {
$dbc->exec($query);

View File

@@ -32,7 +32,7 @@ use SP\Storage\Database;
use SP\Storage\DbWrapper;
use SP\Storage\FileException;
use SP\Storage\FileHandler;
use SP\Storage\MysqlFileParser;
use SP\Storage\MySQLFileParser;
use SP\Storage\QueryData;
use SP\Util\Util;
@@ -202,7 +202,7 @@ class UpgradeDatabaseService extends Service implements UpgradeInterface
$file = SQL_PATH . DIRECTORY_SEPARATOR . str_replace('.', '', $filename) . '.sql';
try {
return (new MysqlFileParser())->parse(new FileHandler($file), '$$');
return (new MySQLFileParser())->parse(new FileHandler($file), '$$');
} catch (FileException $e) {
processException($e);

View File

@@ -2,8 +2,8 @@
/**
* sysPass
*
* @author nuxsmin
* @link https://syspass.org
* @author nuxsmin
* @link https://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
@@ -26,16 +26,17 @@ namespace SP\Storage;
/**
* Class MysqlFileParser
*
* @package SP\Storage
*/
class MysqlFileParser implements DatabaseFileInterface
class MySQLFileParser implements DatabaseFileInterface
{
/**
* Parses a database script file and returns an array of lines parsed
*
* @param FileHandler $fileHandler
* @param string $delimiter
* @param string $delimiter
* @return array
* @throws FileException
*/
@@ -54,24 +55,25 @@ class MysqlFileParser implements DatabaseFileInterface
if ($length > 0
&& strpos($buffer, '--') !== 0
) {
// Checks if line is a set wrapped by a comment
// CHecks if delimiter based EOL is reached
$end = strrpos($buffer, $delimiter) === $length - $delimiterLength;
// Checks if line is an SQL statement wrapped by a comment
$setComment = preg_match(/** @lang RegExp */
'#^(?P<statement>/\*!\d+.*\*/)#', $buffer, $matches);
if ($setComment) {
$queries[] = $matches['statement'];
} else {
$end = strrpos($buffer, $delimiter) === $length - $delimiterLength;
if (!$end) {
$query .= $matches['statement'] . PHP_EOL;
} else {
$queries[] = $query . $matches['statement'];
$query = '';
}
} else {
if (!$end) {
$query .= $buffer . PHP_EOL;
} elseif ($end
&& empty($query)
&& strpos($buffer, 'DELIMITER') === false
) {
$queries[] = trim(substr_replace($buffer, '', $length - $delimiterLength), $delimiterLength);
} elseif (!empty($query)) { // End of query
$queries[] = trim($query);
} elseif ($end && strpos($buffer, 'DELIMITER') === false) {
$queries[] = $query . trim(substr_replace($buffer, '', $length - $delimiterLength), $delimiterLength);
$query = '';
}

View File

@@ -1,23 +0,0 @@
-- To 1.1.0;
ALTER TABLE `accFiles`
CHANGE COLUMN name `accfile_name` VARCHAR(100) NOT NULL;
ALTER TABLE `accounts`
ADD COLUMN `account_otherGroupEdit` BIT(1) NULL DEFAULT 0
AFTER `account_dateEdit`,
ADD COLUMN `account_otherUserEdit` BIT(1) NULL DEFAULT 0
AFTER `account_otherGroupEdit`;
CREATE TABLE `accUsers` (
`accuser_id` INT NOT NULL AUTO_INCREMENT,
`accuser_accountId` INT(10) UNSIGNED NOT NULL,
`accuser_userId` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`accuser_id`),
INDEX `idx_account` (`accuser_accountId` ASC)
)
DEFAULT CHARSET = utf8;
ALTER TABLE `accHistory`
ADD COLUMN `accHistory_otherUserEdit` BIT NULL
AFTER `acchistory_mPassHash`,
ADD COLUMN `accHistory_otherGroupEdit` VARCHAR(45) NULL
AFTER `accHistory_otherUserEdit`;
ALTER TABLE `accFiles`
CHANGE COLUMN type `accfile_type` VARCHAR(100) NOT NULL;

View File

@@ -1,11 +0,0 @@
-- To 1.1.21;
ALTER TABLE `categories`
ADD COLUMN `category_description` VARCHAR(255) NULL
AFTER `category_name`;
ALTER TABLE `usrProfiles`
ADD COLUMN `userProfile_pAppMgmtMenu` BIT(1) NULL DEFAULT b'0'
AFTER `userProfile_pUsersMenu`,
CHANGE COLUMN `userProfile_pConfigCategories` `userProfile_pAppMgmtCategories` BIT(1) NULL DEFAULT b'0'
AFTER `userProfile_pAppMgmtMenu`,
ADD COLUMN `userProfile_pAppMgmtCustomers` BIT(1) NULL DEFAULT b'0'
AFTER `userProfile_pAppMgmtCategories`;

View File

@@ -1,8 +0,0 @@
-- To 1.1.2.13;
ALTER TABLE `usrData`
CHANGE COLUMN `user_mPass` `user_mPass` VARBINARY(32) NULL DEFAULT NULL,
CHANGE COLUMN `user_lastLogin` `user_lastLogin` DATETIME NULL DEFAULT NULL,
CHANGE COLUMN `user_lastUpdate` `user_lastUpdate` DATETIME NULL DEFAULT NULL,
CHANGE COLUMN `user_mIV` `user_mIV` VARBINARY(32) NULL;
ALTER TABLE `accounts`
CHANGE COLUMN `account_login` `account_login` VARCHAR(50) NULL DEFAULT NULL;

View File

@@ -1,5 +0,0 @@
-- To 1.1.2.19;
ALTER TABLE `accounts`
CHANGE COLUMN `account_pass` `account_pass` VARBINARY(255) NOT NULL;
ALTER TABLE `accHistory`
CHANGE COLUMN `acchistory_pass` `acchistory_pass` VARBINARY(255) NOT NULL;

View File

@@ -1,4 +0,0 @@
-- To 1.1.22;
ALTER TABLE `usrData`
CHANGE COLUMN `user_login` `user_login` VARCHAR(50) NOT NULL,
CHANGE COLUMN `user_email` `user_email` VARCHAR(80) NULL DEFAULT NULL;

View File

@@ -1,4 +0,0 @@
-- To 1.1.2.20;
ALTER TABLE `usrData`
CHANGE COLUMN `user_pass` `user_pass` VARBINARY(255) NOT NULL,
CHANGE COLUMN `user_mPass` `user_mPass` VARBINARY(255) DEFAULT NULL;

View File

@@ -1,17 +0,0 @@
-- To 1.1.23;
CREATE TABLE `usrPassRecover` (
`userpassr_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`userpassr_userId` SMALLINT UNSIGNED NOT NULL,
`userpassr_hash` VARBINARY(40) NOT NULL,
`userpassr_date` INT UNSIGNED NOT NULL,
`userpassr_used` BIT(1) NOT NULL DEFAULT b'0',
PRIMARY KEY (`userpassr_id`),
INDEX `IDX_userId` (`userpassr_userId` ASC, `userpassr_date` ASC)
)
DEFAULT CHARSET = utf8;
ALTER TABLE `log`
ADD COLUMN `log_ipAddress` VARCHAR(45) NOT NULL
AFTER `log_userId`;
ALTER TABLE `usrData`
ADD COLUMN `user_isChangePass` BIT(1) NULL DEFAULT b'0'
AFTER `user_isMigrate`;

View File

@@ -1,60 +0,0 @@
-- To 1.2.0.0.1;
ALTER TABLE `accounts`
CHANGE COLUMN `account_userEditId` `account_userEditId` TINYINT(3) UNSIGNED NULL DEFAULT NULL,
CHANGE COLUMN `account_dateEdit` `account_dateEdit` DATETIME NULL DEFAULT NULL;
ALTER TABLE `accHistory`
CHANGE COLUMN `acchistory_userEditId` `acchistory_userEditId` TINYINT(3) UNSIGNED NULL DEFAULT NULL,
CHANGE COLUMN `acchistory_dateEdit` `acchistory_dateEdit` DATETIME NULL DEFAULT NULL;
ALTER TABLE `accHistory`
CHANGE COLUMN `accHistory_otherGroupEdit` `accHistory_otherGroupEdit` BIT NULL DEFAULT b'0';
ALTER TABLE `usrProfiles`
ADD COLUMN `userProfile_profile` BLOB NOT NULL;
ALTER TABLE `usrData`
ADD `user_preferences` BLOB NULL;
CREATE TABLE usrToGroups (
usertogroup_id INT UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
usertogroup_userId INT UNSIGNED NOT NULL,
usertogroup_groupId INT UNSIGNED NOT NULL
)
DEFAULT CHARSET = utf8;
CREATE INDEX IDX_accountId
ON usrToGroups (usertogroup_userId);
ALTER TABLE `accFiles`
ADD `accFile_thumb` BLOB NULL;
CREATE TABLE `authTokens` (
`authtoken_id` INT(11) NOT NULL AUTO_INCREMENT,
`authtoken_userId` INT(11) NOT NULL,
`authtoken_token` VARBINARY(100) NOT NULL,
`authtoken_actionId` SMALLINT(5) UNSIGNED NOT NULL,
`authtoken_createdBy` SMALLINT(5) UNSIGNED NOT NULL,
`authtoken_startDate` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`authtoken_id`),
UNIQUE KEY `unique_authtoken_id` (`authtoken_id`),
KEY `IDX_checkToken` (`authtoken_userId`, `authtoken_actionId`, `authtoken_token`)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
CREATE TABLE `customFieldsDef` (
`customfielddef_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`customfielddef_module` SMALLINT(5) UNSIGNED NOT NULL,
`customfielddef_field` BLOB NOT NULL,
PRIMARY KEY (`customfielddef_id`)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;
CREATE TABLE `customFieldsData` (
`customfielddata_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`customfielddata_moduleId` SMALLINT(5) UNSIGNED NOT NULL,
`customfielddata_itemId` INT(10) UNSIGNED NOT NULL,
`customfielddata_defId` INT(10) UNSIGNED NOT NULL,
`customfielddata_data` LONGBLOB,
`customfielddata_iv` VARBINARY(128) DEFAULT NULL,
PRIMARY KEY (`customfielddata_id`),
KEY `IDX_DEFID` (`customfielddata_defId`),
KEY `IDX_DELETE` (`customfielddata_itemId`, `customfielddata_moduleId`),
KEY `IDX_UPDATE` (`customfielddata_moduleId`, `customfielddata_itemId`, `customfielddata_defId`),
KEY `IDX_ITEM` (`customfielddata_itemId`),
KEY `IDX_MODULE` (`customfielddata_moduleId`)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8;

View File

@@ -1,9 +0,0 @@
-- To 1.2.0.0.2;
ALTER TABLE config
CHANGE config_value config_value VARCHAR(255);
ALTER TABLE usrData
CHANGE user_pass user_pass VARBINARY(255);
ALTER TABLE usrData
CHANGE user_hashSalt user_hashSalt VARBINARY(128);
ALTER TABLE accHistory
CHANGE acchistory_mPassHash acchistory_mPassHash VARBINARY(255);

View File

@@ -1,75 +0,0 @@
ALTER TABLE `usrData` ENGINE = InnoDB;
ALTER TABLE `accFiles` ENGINE = InnoDB;
ALTER TABLE `accGroups` ENGINE = InnoDB;
ALTER TABLE `accHistory` ENGINE = InnoDB;
ALTER TABLE `accUsers` ENGINE = InnoDB;
ALTER TABLE `categories` ENGINE = InnoDB;
ALTER TABLE `config` ENGINE = InnoDB;
ALTER TABLE `customers` ENGINE = InnoDB;
ALTER TABLE `log` ENGINE = InnoDB;
ALTER TABLE `usrGroups` ENGINE = InnoDB;
ALTER TABLE `usrPassRecover` ENGINE = InnoDB;
ALTER TABLE `usrProfiles` ENGINE = InnoDB;
ALTER TABLE `accounts` ENGINE = InnoDB;
ALTER TABLE `log` ADD log_level VARCHAR(20) NOT NULL;
ALTER TABLE `config` CHANGE config_value config_value VARCHAR(2000);
CREATE TABLE IF NOT EXISTS `publicLinks` (
`publicLink_id` int UNSIGNED NOT NULL AUTO_INCREMENT,
`publicLink_itemId` int UNSIGNED DEFAULT NULL,
`publicLink_hash` varbinary(100) NOT NULL,
`publicLink_linkData` longblob,
PRIMARY KEY (`publicLink_id`),
UNIQUE KEY `IDX_hash` (`publicLink_hash`),
UNIQUE KEY `unique_publicLink_hash` (`publicLink_hash`),
UNIQUE KEY `unique_publicLink_accountId` (`publicLink_itemId`),
KEY `IDX_itemId` (`publicLink_itemId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `accFavorites` (
`accfavorite_accountId` smallint(5) unsigned NOT NULL,
`accfavorite_userId` smallint(5) unsigned NOT NULL,
KEY `fk_accFavorites_accounts_idx` (`accfavorite_accountId`),
KEY `fk_accFavorites_users_idx` (`accfavorite_userId`),
KEY `search_idx` (`accfavorite_accountId`,`accfavorite_userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `tags` (
`tag_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`tag_name` VARCHAR(45) NOT NULL,
`tag_hash` BINARY(40) NOT NULL,
PRIMARY KEY (`tag_id`),
INDEX `IDX_name` (`tag_name` ASC),
UNIQUE INDEX `tag_hash_UNIQUE` (`tag_hash` ASC)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
CREATE TABLE IF NOT EXISTS `accTags` (
`acctag_accountId` SMALLINT(10) UNSIGNED NOT NULL,
`acctag_tagId` INT UNSIGNED NOT NULL,
INDEX `IDX_id` (`acctag_accountId` ASC, `acctag_tagId` ASC)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
CREATE TABLE IF NOT EXISTS `plugins` (
`plugin_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`plugin_name` VARCHAR(100) NOT NULL,
`plugin_data` VARBINARY(5000) NULL,
`plugin_enabled` BIT(1) NOT NULL DEFAULT b'0',
PRIMARY KEY (`plugin_id`),
UNIQUE INDEX `plugin_name_UNIQUE` (`plugin_name` ASC)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
CREATE TABLE IF NOT EXISTS `notices` (
`notice_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`notice_type` VARCHAR(100) NULL,
`notice_component` VARCHAR(100) NOT NULL,
`notice_description` VARCHAR(500) NOT NULL,
`notice_date` INT UNSIGNED NOT NULL,
`notice_checked` BIT(1) NULL DEFAULT b'0',
`notice_userId` SMALLINT(5) UNSIGNED NULL,
`notice_sticky` BIT(1) NULL DEFAULT b'0',
`notice_onlyAdmin` BIT(1) NULL DEFAULT b'0',
PRIMARY KEY (`notice_id`),
INDEX `IDX_userId` (`notice_userId` ASC, `notice_checked` ASC, `notice_date` ASC),
INDEX `IDX_component` (`notice_component` ASC, `notice_date` ASC, `notice_checked` ASC, `notice_userId` ASC)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

View File

@@ -1,354 +0,0 @@
-- To 1.3.16100601;
ALTER TABLE `accHistory`
CHANGE COLUMN `acchistory_userId` `acchistory_userId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `acchistory_userEditId` `acchistory_userEditId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `acchistory_customerId` `acchistory_customerId` INT(10) UNSIGNED NOT NULL,
CHANGE COLUMN `acchistory_categoryId` `acchistory_categoryId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `acchistory_dateEdit` `acchistory_dateEdit` DATETIME NULL DEFAULT NULL,
CHANGE COLUMN `acchistory_userGroupId` `acchistory_userGroupId` SMALLINT(5) UNSIGNED NOT NULL,
ADD INDEX `fk_accHistory_users_id_idx` (`acchistory_userId` ASC),
ADD INDEX `fk_accHistory_users_edit_id_idx` (`acchistory_userEditId` ASC),
ADD INDEX `fk_accHistory_categories_id_idx` (`acchistory_categoryId` ASC),
ADD INDEX `fk_accHistory_customers_id_idx` (`acchistory_customerId` ASC);
ALTER TABLE `accUsers`
DROP COLUMN `accuser_id`,
CHANGE COLUMN `accuser_accountId` `accuser_accountId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `accuser_userId` `accuser_userId` SMALLINT(5) UNSIGNED NOT NULL,
ADD INDEX `fk_accUsers_users_id_idx` (`accuser_userId` ASC),
DROP PRIMARY KEY;
ALTER TABLE `accounts`
CHANGE COLUMN `account_id` `account_id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE COLUMN `account_userId` `account_userId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `account_userEditId` `account_userEditId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `account_categoryId` `account_categoryId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `account_dateEdit` `account_dateEdit` DATETIME NULL DEFAULT NULL,
CHANGE COLUMN `account_userGroupId` `account_userGroupId` SMALLINT(5) UNSIGNED NOT NULL,
ADD INDEX `fk_accounts_user_id_idx` (`account_userId` ASC),
ADD INDEX `fk_accounts_user__edit_id_idx` (`account_userEditId` ASC);
ALTER TABLE `authTokens`
CHANGE COLUMN `authtoken_userId` `authtoken_userId` SMALLINT(5) UNSIGNED NOT NULL,
ADD INDEX `fk_authTokens_users_id_idx` (`authtoken_userId` ASC, `authtoken_createdBy` ASC);
ALTER TABLE `log`
CHANGE COLUMN `log_userId` `log_userId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `log_description` `log_description` TEXT NULL DEFAULT NULL,
ADD INDEX `fk_log_users_id_idx` (`log_userId` ASC);
ALTER TABLE `usrData`
CHANGE COLUMN `user_groupId` `user_groupId` SMALLINT(3) UNSIGNED NOT NULL,
CHANGE COLUMN `user_secGroupId` `user_secGroupId` SMALLINT(3) UNSIGNED NULL DEFAULT NULL,
CHANGE COLUMN `user_profileId` `user_profileId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `user_isAdminApp` `user_isAdminApp` BIT(1) NULL DEFAULT b'0',
CHANGE COLUMN `user_isAdminAcc` `user_isAdminAcc` BIT(1) NULL DEFAULT b'0',
CHANGE COLUMN `user_isLdap` `user_isLdap` BIT(1) NULL DEFAULT b'0',
CHANGE COLUMN `user_isDisabled` `user_isDisabled` BIT(1) NULL DEFAULT b'0',
ADD INDEX `fk_usrData_groups_id_idx` (`user_groupId` ASC),
ADD INDEX `fk_usrData_profiles_id_idx` (`user_profileId` ASC);
ALTER TABLE `usrPassRecover`
CHANGE COLUMN `userpassr_used` `userpassr_used` BIT(1) NULL DEFAULT b'0';
ALTER TABLE `usrToGroups`
DROP COLUMN `usertogroup_id`,
CHANGE COLUMN `usertogroup_userId` `usertogroup_userId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `usertogroup_groupId` `usertogroup_groupId` SMALLINT(5) UNSIGNED NOT NULL,
ADD INDEX `fk_usrToGroups_groups_id_idx` (`usertogroup_groupId` ASC),
DROP PRIMARY KEY;
ALTER TABLE `accGroups`
CHANGE COLUMN `accgroup_accountId` `accgroup_accountId` SMALLINT(5) UNSIGNED NOT NULL,
CHANGE COLUMN `accgroup_groupId` `accgroup_groupId` SMALLINT(5) UNSIGNED NOT NULL;
ALTER TABLE `accFavorites`
ADD CONSTRAINT `fk_accFavorites_accounts_id`
FOREIGN KEY (`accfavorite_accountId`)
REFERENCES `accounts` (`account_id`)
ON DELETE CASCADE
ON UPDATE NO ACTION;
ALTER TABLE `accFavorites`
ADD CONSTRAINT `fk_accFavorites_users_id`
FOREIGN KEY (`accfavorite_userId`)
REFERENCES `usrData` (`user_id`)
ON DELETE CASCADE
ON UPDATE NO ACTION;
ALTER TABLE `accFiles`
ADD CONSTRAINT `fk_accFiles_accounts_id`
FOREIGN KEY (accountId)
REFERENCES `accounts` (`account_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE `accGroups`
ADD CONSTRAINT `fk_accGroups_accounts_id`
FOREIGN KEY (`accgroup_accountId`)
REFERENCES `accounts` (`account_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `accGroups`
ADD CONSTRAINT `fk_accGroups_groups_id`
FOREIGN KEY (`accgroup_groupId`)
REFERENCES `usrGroups` (`usergroup_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `accHistory`
ADD CONSTRAINT `fk_accHistory_user_id`
FOREIGN KEY (`acchistory_userId`)
REFERENCES `usrData` (`user_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
ALTER TABLE `accHistory`
ADD CONSTRAINT `fk_accHistory_users_edit_id`
FOREIGN KEY (`acchistory_userEditId`)
REFERENCES `usrData` (`user_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
ALTER TABLE `accHistory`
ADD CONSTRAINT `fk_accHistory_category_id`
FOREIGN KEY (`acchistory_categoryId`)
REFERENCES `categories` (`category_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
ALTER TABLE `accHistory`
ADD CONSTRAINT `fk_accHistory_customer_id`
FOREIGN KEY (`acchistory_customerId`)
REFERENCES `customers` (`customer_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
ALTER TABLE `accHistory`
ADD CONSTRAINT `fk_accHistory_userGroup_id`
FOREIGN KEY (`acchistory_userGroupId`)
REFERENCES `usrGroups` (`usergroup_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE `accTags`
ADD CONSTRAINT `fk_accTags_accounts_id`
FOREIGN KEY (`acctag_accountId`)
REFERENCES `accounts` (`account_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `accTags`
ADD CONSTRAINT `fk_accTags_tags_id`
FOREIGN KEY (`acctag_tagId`)
REFERENCES `tags` (`tag_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `accUsers`
ADD CONSTRAINT `fk_accUsers_accounts_id`
FOREIGN KEY (`accuser_accountId`)
REFERENCES `accounts` (`account_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `accUsers`
ADD CONSTRAINT `fk_accUsers_users_id`
FOREIGN KEY (`accuser_userId`)
REFERENCES `usrData` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `accounts`
ADD CONSTRAINT `fk_accounts_category_id`
FOREIGN KEY (`account_categoryId`)
REFERENCES `categories` (`category_id`)
ON DELETE RESTRICT
ON UPDATE CASCADE;
ALTER TABLE `accounts`
ADD CONSTRAINT `fk_accounts_user_id`
FOREIGN KEY (`account_userId`)
REFERENCES `usrData` (`user_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
ALTER TABLE `accounts`
ADD CONSTRAINT `fk_accounts_user_edit_id`
FOREIGN KEY (`account_userEditId`)
REFERENCES `usrData` (`user_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
ALTER TABLE `accounts`
ADD CONSTRAINT `fk_accounts_customer_id`
FOREIGN KEY (`account_customerId`)
REFERENCES `customers` (`customer_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
ALTER TABLE `accounts`
ADD CONSTRAINT `fk_accounts_userGroup_id`
FOREIGN KEY (`account_userGroupId`)
REFERENCES `usrGroups` (`usergroup_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ALTER TABLE `authTokens`
ADD CONSTRAINT `fk_authTokens_user_id`
FOREIGN KEY (`authtoken_userId`)
REFERENCES `usrData` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `authTokens`
ADD CONSTRAINT `fk_authTokens_createdBy_id`
FOREIGN KEY (`authtoken_createdBy`)
REFERENCES `usrData` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `customFieldsData`
ADD CONSTRAINT `fk_customFieldsData_def_id`
FOREIGN KEY (`customfielddata_defId`)
REFERENCES `customFieldsDef` (`customfielddef_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `usrData`
ADD CONSTRAINT `fk_usrData_groups_id`
FOREIGN KEY (`user_groupId`)
REFERENCES `usrGroups` (`usergroup_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
ALTER TABLE `usrData`
ADD CONSTRAINT `fk_usrData_profiles_id`
FOREIGN KEY (`user_profileId`)
REFERENCES `usrProfiles` (`userprofile_id`)
ON DELETE RESTRICT
ON UPDATE RESTRICT;
ALTER TABLE `usrPassRecover`
ADD CONSTRAINT `fk_usrPassRecover_users`
FOREIGN KEY (`userpassr_userId`)
REFERENCES `usrData` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `usrToGroups`
ADD CONSTRAINT `fk_usrToGroups_users_id`
FOREIGN KEY (`usertogroup_userId`)
REFERENCES `usrData` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `usrToGroups`
ADD CONSTRAINT `fk_usrToGroups_groups_id`
FOREIGN KEY (`usertogroup_groupId`)
REFERENCES `usrGroups` (`usergroup_id`)
ON DELETE CASCADE
ON UPDATE CASCADE;
ALTER TABLE `accounts`
ADD COLUMN `account_isPrivate` BIT(1) NULL DEFAULT b'0'
AFTER `account_otherUserEdit`;
ALTER TABLE `accounts`
ADD COLUMN `account_passDate` INT UNSIGNED NULL
AFTER `account_isPrivate`,
ADD COLUMN `account_passDateChange` INT UNSIGNED NULL
AFTER `account_passDate`;
ALTER TABLE `accHistory`
ADD COLUMN `accHistory_passDate` INT UNSIGNED NULL
AFTER `accHistory_otherGroupEdit`,
ADD COLUMN `accHistory_passDateChange` INT UNSIGNED NULL
AFTER `accHistory_passDate`;
ALTER TABLE `accounts`
ADD COLUMN `account_parentId` SMALLINT(5) UNSIGNED NULL
AFTER `account_passDateChange`;
ALTER TABLE `accHistory`
ADD COLUMN `accHistory_parentId` SMALLINT(5) UNSIGNED NULL
AFTER `accHistory_passDateChange`,
ADD INDEX `fk_accHistory_userGroup_id_idx` (`acchistory_userGroupId` ASC);
CREATE OR REPLACE ALGORITHM = UNDEFINED DEFINER = CURRENT_USER SQL SECURITY DEFINER VIEW `account_data_v` AS
SELECT
`accounts`.`account_id` AS `account_id`,
`accounts`.`account_name` AS `account_name`,
`accounts`.`account_categoryId` AS `account_categoryId`,
`accounts`.`account_userId` AS `account_userId`,
`accounts`.`account_customerId` AS `account_customerId`,
`accounts`.`account_userGroupId` AS `account_userGroupId`,
`accounts`.`account_userEditId` AS `account_userEditId`,
`accounts`.`account_login` AS `account_login`,
`accounts`.`account_url` AS `account_url`,
`accounts`.`account_notes` AS `account_notes`,
`accounts`.`account_countView` AS `account_countView`,
`accounts`.`account_countDecrypt` AS `account_countDecrypt`,
`accounts`.`account_dateAdd` AS `account_dateAdd`,
`accounts`.`account_dateEdit` AS `account_dateEdit`,
conv(`accounts`.`account_otherUserEdit`, 10, 2) AS `account_otherUserEdit`,
conv(`accounts`.`account_otherGroupEdit`, 10, 2) AS `account_otherGroupEdit`,
conv(`accounts`.`account_isPrivate`, 10, 2) AS `account_isPrivate`,
`accounts`.`account_passDate` AS `account_passDate`,
`accounts`.`account_passDateChange` AS `account_passDateChange`,
`accounts`.`account_parentId` AS `account_parentId`,
`categories`.`category_name` AS `category_name`,
`customers`.`customer_name` AS `customer_name`,
`ug`.`usergroup_name` AS `usergroup_name`,
`u1`.`user_name` AS `user_name`,
`u1`.`user_login` AS `user_login`,
`u2`.`user_name` AS `user_editName`,
`u2`.`user_login` AS `user_editLogin`,
`publicLinks`.`publicLink_hash` AS `publicLink_hash`
FROM ((((((`accounts`
LEFT JOIN `categories` ON ((`accounts`.`account_categoryId` = `categories`.`category_id`))) LEFT JOIN
`usrGroups` `ug` ON ((`accounts`.`account_userGroupId` = `ug`.`usergroup_id`))) LEFT JOIN `usrData` `u1`
ON ((`accounts`.`account_userId` = `u1`.`user_id`))) LEFT JOIN `usrData` `u2`
ON ((`accounts`.`account_userEditId` = `u2`.`user_id`))) LEFT JOIN `customers`
ON ((`accounts`.`account_customerId` = `customers`.`customer_id`))) LEFT JOIN `publicLinks`
ON ((`accounts`.`account_id` = `publicLinks`.`publicLink_itemId`)));
CREATE OR REPLACE ALGORITHM = UNDEFINED DEFINER = CURRENT_USER SQL SECURITY DEFINER VIEW `account_search_v` AS
SELECT DISTINCT
`accounts`.`account_id` AS `account_id`,
`accounts`.`account_customerId` AS `account_customerId`,
`accounts`.`account_categoryId` AS `account_categoryId`,
`accounts`.`account_name` AS `account_name`,
`accounts`.`account_login` AS `account_login`,
`accounts`.`account_url` AS `account_url`,
`accounts`.`account_notes` AS `account_notes`,
`accounts`.`account_userId` AS `account_userId`,
`accounts`.`account_userGroupId` AS `account_userGroupId`,
`accounts`.`account_otherUserEdit` AS `account_otherUserEdit`,
`accounts`.`account_otherGroupEdit` AS `account_otherGroupEdit`,
`accounts`.`account_isPrivate` AS `account_isPrivate`,
`accounts`.`account_passDate` AS `account_passDate`,
`accounts`.`account_passDateChange` AS `account_passDateChange`,
`accounts`.`account_parentId` AS `account_parentId`,
`accounts`.`account_countView` AS `account_countView`,
`ug`.`usergroup_name` AS `usergroup_name`,
`categories`.`category_name` AS `category_name`,
`customers`.`customer_name` AS `customer_name`,
(SELECT COUNT(0)
FROM
`accFiles`
WHERE
(`accFiles`.accountId = `accounts`.`account_id`)) AS `num_files`
FROM
(((`accounts`
LEFT JOIN `categories` ON ((`accounts`.`account_categoryId` = `categories`.`category_id`)))
LEFT JOIN `usrGroups` `ug` ON ((`accounts`.`account_userGroupId` = `ug`.`usergroup_id`)))
LEFT JOIN `customers` ON ((`customers`.`customer_id` = `accounts`.`account_customerId`)));
ALTER TABLE `accounts`
ADD INDEX `IDX_parentId` USING BTREE (`account_parentId` ASC);
ALTER TABLE `categories`
ADD COLUMN `category_hash` VARBINARY(40) NOT NULL DEFAULT 0
AFTER `category_description`;

View File

@@ -1,2 +0,0 @@
ALTER TABLE `accounts`
CHANGE COLUMN `account_id` `account_id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT;

View File

@@ -1,81 +0,0 @@
ALTER TABLE `accounts`
ADD COLUMN `account_isPrivateGroup` BIT(1) NULL DEFAULT b'0' AFTER `account_isPrivate`;
ALTER TABLE `accHistory`
ADD COLUMN `accHistory_isPrivate` BIT(1) NULL DEFAULT b'0' AFTER `accHistory_parentId`,
ADD COLUMN `accHistory_isPrivateGroup` BIT(1) NULL DEFAULT b'0' AFTER `accHistory_isPrivate`;
CREATE OR REPLACE ALGORITHM = UNDEFINED DEFINER = CURRENT_USER SQL SECURITY DEFINER VIEW `account_data_v` AS
SELECT
`accounts`.`account_id` AS `account_id`,
`accounts`.`account_name` AS `account_name`,
`accounts`.`account_categoryId` AS `account_categoryId`,
`accounts`.`account_userId` AS `account_userId`,
`accounts`.`account_customerId` AS `account_customerId`,
`accounts`.`account_userGroupId` AS `account_userGroupId`,
`accounts`.`account_userEditId` AS `account_userEditId`,
`accounts`.`account_login` AS `account_login`,
`accounts`.`account_url` AS `account_url`,
`accounts`.`account_notes` AS `account_notes`,
`accounts`.`account_countView` AS `account_countView`,
`accounts`.`account_countDecrypt` AS `account_countDecrypt`,
`accounts`.`account_dateAdd` AS `account_dateAdd`,
`accounts`.`account_dateEdit` AS `account_dateEdit`,
CONV(`accounts`.`account_otherUserEdit`,10,2) AS `account_otherUserEdit`,
CONV(`accounts`.`account_otherGroupEdit`,10,2) AS `account_otherGroupEdit`,
CONV(`accounts`.`account_isPrivate`, 10, 2) AS `account_isPrivate`,
CONV(`accounts`.`account_isPrivateGroup`, 10, 2) AS `account_isPrivateGroup`,
`accounts`.`account_passDate` AS `account_passDate`,
`accounts`.`account_passDateChange` AS `account_passDateChange`,
`accounts`.`account_parentId` AS `account_parentId`,
`categories`.`category_name` AS `category_name`,
`customers`.`customer_name` AS `customer_name`,
`ug`.`usergroup_name` AS `usergroup_name`,
`u1`.`user_name` AS `user_name`,
`u1`.`user_login` AS `user_login`,
`u2`.`user_name` AS `user_editName`,
`u2`.`user_login` AS `user_editLogin`,
`publicLinks`.`publicLink_hash` AS `publicLink_hash`
FROM
((((((`accounts`
LEFT JOIN `categories` ON ((`accounts`.`account_categoryId` = `categories`.`category_id`)))
LEFT JOIN `usrGroups` `ug` ON ((`accounts`.`account_userGroupId` = `ug`.`usergroup_id`)))
LEFT JOIN `usrData` `u1` ON ((`accounts`.`account_userId` = `u1`.`user_id`)))
LEFT JOIN `usrData` `u2` ON ((`accounts`.`account_userEditId` = `u2`.`user_id`)))
LEFT JOIN `customers` ON ((`accounts`.`account_customerId` = `customers`.`customer_id`)))
LEFT JOIN `publicLinks` ON ((`accounts`.`account_id` = `publicLinks`.`publicLink_itemId`)));
CREATE OR REPLACE ALGORITHM = UNDEFINED DEFINER = CURRENT_USER SQL SECURITY DEFINER VIEW `account_search_v` AS
SELECT DISTINCT
`accounts`.`account_id` AS `account_id`,
`accounts`.`account_customerId` AS `account_customerId`,
`accounts`.`account_categoryId` AS `account_categoryId`,
`accounts`.`account_name` AS `account_name`,
`accounts`.`account_login` AS `account_login`,
`accounts`.`account_url` AS `account_url`,
`accounts`.`account_notes` AS `account_notes`,
`accounts`.`account_userId` AS `account_userId`,
`accounts`.`account_userGroupId` AS `account_userGroupId`,
`accounts`.`account_otherUserEdit` AS `account_otherUserEdit`,
`accounts`.`account_otherGroupEdit` AS `account_otherGroupEdit`,
`accounts`.`account_isPrivate` AS `account_isPrivate`,
`accounts`.`account_isPrivateGroup` AS `account_isPrivateGroup`,
`accounts`.`account_passDate` AS `account_passDate`,
`accounts`.`account_passDateChange` AS `account_passDateChange`,
`accounts`.`account_parentId` AS `account_parentId`,
`accounts`.`account_countView` AS `account_countView`,
`ug`.`usergroup_name` AS `usergroup_name`,
`categories`.`category_name` AS `category_name`,
`customers`.`customer_name` AS `customer_name`,
(SELECT
COUNT(0)
FROM
`accFiles`
WHERE
(`accFiles`.accountId = `accounts`.`account_id`)) AS `num_files`
FROM
(((`accounts`
LEFT JOIN `categories` ON ((`accounts`.`account_categoryId` = `categories`.`category_id`)))
LEFT JOIN `usrGroups` `ug` ON ((`accounts`.`account_userGroupId` = `ug`.`usergroup_id`)))
LEFT JOIN `customers` ON ((`customers`.`customer_id` = `accounts`.`account_customerId`)));

View File

@@ -1,40 +0,0 @@
CREATE OR REPLACE ALGORITHM = UNDEFINED DEFINER = CURRENT_USER SQL SECURITY DEFINER VIEW `account_search_v` AS
SELECT DISTINCT
`accounts`.`account_id` AS `account_id`,
`accounts`.`account_customerId` AS `account_customerId`,
`accounts`.`account_categoryId` AS `account_categoryId`,
`accounts`.`account_name` AS `account_name`,
`accounts`.`account_login` AS `account_login`,
`accounts`.`account_url` AS `account_url`,
`accounts`.`account_notes` AS `account_notes`,
`accounts`.`account_userId` AS `account_userId`,
`accounts`.`account_userGroupId` AS `account_userGroupId`,
CONV(`accounts`.`account_otherUserEdit`,
10,
2) AS `account_otherUserEdit`,
CONV(`accounts`.`account_otherGroupEdit`,
10,
2) AS `account_otherGroupEdit`,
CONV(`accounts`.`account_isPrivate`, 10, 2) AS `account_isPrivate`,
CONV(`accounts`.`account_isPrivateGroup`,
10,
2) AS `account_isPrivateGroup`,
`accounts`.`account_passDate` AS `account_passDate`,
`accounts`.`account_passDateChange` AS `account_passDateChange`,
`accounts`.`account_parentId` AS `account_parentId`,
`accounts`.`account_countView` AS `account_countView`,
`accounts`.`account_dateEdit` AS `account_dateEdit`,
`ug`.`usergroup_name` AS `usergroup_name`,
`categories`.`category_name` AS `category_name`,
`customers`.`customer_name` AS `customer_name`,
(SELECT
COUNT(0)
FROM
`accFiles`
WHERE
(`accFiles`.accountId = `accounts`.`account_id`)) AS `num_files`
FROM
(((`accounts`
LEFT JOIN `categories` ON ((`accounts`.`account_categoryId` = `categories`.`category_id`)))
LEFT JOIN `usrGroups` `ug` ON ((`accounts`.`account_userGroupId` = `ug`.`usergroup_id`)))
LEFT JOIN `customers` ON ((`customers`.`customer_id` = `accounts`.`account_customerId`)));

View File

@@ -1,31 +0,0 @@
ALTER TABLE `accounts`
CHANGE COLUMN `account_pass` `account_pass` VARBINARY(1000) NOT NULL,
CHANGE COLUMN `account_IV` `account_key` VARBINARY(1000) NOT NULL;
ALTER TABLE `accHistory`
CHANGE COLUMN `acchistory_pass` `acchistory_pass` VARBINARY(1000) NOT NULL,
CHANGE COLUMN `acchistory_IV` `acchistory_key` VARBINARY(1000) NOT NULL;
ALTER TABLE `customFieldsData`
CHANGE COLUMN `customfielddata_iv` `customfielddata_key` VARBINARY(1000) NOT NULL;
ALTER TABLE `usrData`
CHANGE COLUMN `user_mPass` `user_mPass` VARBINARY(1000) NULL DEFAULT NULL,
CHANGE COLUMN `user_mIV` `user_mKey` VARBINARY(1000) NULL DEFAULT NULL;
ALTER TABLE `authTokens`
ADD COLUMN `authtoken_vault` VARBINARY(2000) NULL,
ADD COLUMN `authtoken_hash` VARBINARY(100) NULL;
CREATE TABLE `track` (
`track_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`track_userId` SMALLINT(5) UNSIGNED NULL,
`track_source` VARCHAR(100) NOT NULL,
`track_time` INT UNSIGNED NOT NULL,
`track_ipv4` BINARY(4) NOT NULL,
`track_ipv6` BINARY(16) NULL,
PRIMARY KEY (`track_id`),
INDEX `IDX_userId` (`track_userId` ASC),
INDEX `IDX_time-ip-source` (`track_time` ASC, `track_ipv4` ASC, `track_ipv6` ASC, `track_source` ASC)
)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
ALTER TABLE `usrData`
ADD COLUMN `user_isChangedPass` BIT(1) NULL DEFAULT b'0'
AFTER `user_isChangePass`;

View File

@@ -1 +0,0 @@
ALTER TABLE `accHistory` CHANGE COLUMN `acchistory_pass` `acchistory_pass` VARBINARY(1000) NOT NULL;

View File

@@ -15,9 +15,6 @@ CREATE PROCEDURE removeConstraints()
AND REFERENCED_TABLE_NAME IS NOT NULL;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
SET AUTOCOMMIT = 0;
SET FOREIGN_KEY_CHECKS = 0;
OPEN cur;
read_loop: LOOP
@@ -27,22 +24,17 @@ CREATE PROCEDURE removeConstraints()
THEN
LEAVE read_loop;
END IF;
SET @sql = CONCAT('ALTER TABLE ', tName, ' DROP FOREIGN KEY ', cName, ';');
PREPARE stmt FROM @sql;
PREPARE stmt FROM CONCAT('ALTER TABLE ', tName, ' DROP FOREIGN KEY ', cName, ';');
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur;
SET FOREIGN_KEY_CHECKS = 1;
COMMIT;
SET AUTOCOMMIT = 1;
END $$
CALL removeConstraints() $$
DROP PROCEDURE removeConstraints $$
-- DROP PROCEDURE removeConstraints
CREATE TABLE `CustomFieldType` (
`id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -59,7 +51,7 @@ VALUES (1, 'text', 'Texto'), (2, 'password', 'Clave'), (3, 'date', 'Fecha'), (4,
(5, 'email', 'Email'), (6, 'telephone', 'Teléfono'), (7, 'url', 'URL'), (8, 'color', 'Color'), (9, 'wiki', 'Wiki'),
(10, 'textarea', 'Área de Texto') $$
-- CustomFieldData $$
-- CustomFieldData
ALTER TABLE customFieldsData
CHANGE customfielddata_defId definitionId INT(10) UNSIGNED NOT NULL,
CHANGE customfielddata_id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -78,7 +70,7 @@ ALTER TABLE customFieldsData
DROP INDEX IDX_ITEM,
RENAME TO CustomFieldData $$
-- CustomFieldDefinition $$
-- CustomFieldDefinition
ALTER TABLE customFieldsDef
ADD required TINYINT(1) UNSIGNED NULL,
ADD help VARCHAR(255) NULL,
@@ -91,7 +83,7 @@ ALTER TABLE customFieldsDef
CHANGE customfielddef_field field BLOB NULL,
RENAME TO CustomFieldDefinition $$
-- EventLog $$
-- EventLog
ALTER TABLE log
CHANGE log_id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE log_date date INT(10) UNSIGNED NOT NULL,
@@ -104,7 +96,7 @@ ALTER TABLE log
DROP INDEX `fk_log_users_id_idx`,
RENAME TO EventLog $$
-- Track $$
-- Track
ALTER TABLE track
CHANGE track_id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE track_userId userId SMALLINT(5) UNSIGNED,
@@ -118,7 +110,7 @@ ALTER TABLE track
ADD INDEX `idx_Track_02` (time ASC, ipv4 ASC, ipv6 ASC, source ASC),
RENAME TO Track $$
-- AccountFile $$
-- AccountFile
ALTER TABLE accFiles
CHANGE accfile_accountId accountId MEDIUMINT(5) UNSIGNED NOT NULL,
CHANGE accfile_id id INT(11) NOT NULL AUTO_INCREMENT,
@@ -132,7 +124,7 @@ ALTER TABLE accFiles
ADD INDEX idx_AccountFile_01 (accountId ASC),
RENAME TO AccountFile $$
-- User $$
-- User
ALTER TABLE usrData
DROP user_secGroupId,
CHANGE user_id id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -166,14 +158,14 @@ ALTER TABLE usrData
ADD UNIQUE INDEX `uk_User_01` (`login`, `ssoLogin`),
RENAME TO User $$
-- UserProfile $$
-- UserProfile
ALTER TABLE usrProfiles
CHANGE userprofile_id id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE userprofile_name name VARCHAR(45) NOT NULL,
CHANGE userProfile_profile profile BLOB NOT NULL,
RENAME TO UserProfile $$
-- Notice $$
-- Notice
ALTER TABLE notices
CHANGE notice_id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE notice_type type VARCHAR(100),
@@ -190,7 +182,7 @@ ALTER TABLE notices
ADD INDEX idx_Notification_02 (component ASC, date ASC, checked ASC, userId ASC),
RENAME TO Notification $$
-- Plugin $$
-- Plugin
ALTER TABLE `plugins`
CHANGE plugin_id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE plugin_name name VARCHAR(100) NOT NULL,
@@ -201,7 +193,7 @@ ALTER TABLE `plugins`
ADD UNIQUE INDEX uk_Plugin_01 (name ASC),
RENAME TO Plugin $$
-- PublicLink $$
-- PublicLink
ALTER TABLE publicLinks
ADD COLUMN `userId` SMALLINT(5) UNSIGNED NOT NULL,
ADD COLUMN `typeId` INT(10) UNSIGNED NOT NULL
@@ -234,7 +226,7 @@ ALTER TABLE publicLinks
DROP INDEX unique_publicLink_hash,
RENAME TO PublicLink $$
-- Category $$
-- Category
ALTER TABLE categories
CHANGE category_id id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE category_name name VARCHAR(50) NOT NULL,
@@ -243,7 +235,7 @@ ALTER TABLE categories
ADD UNIQUE INDEX uk_Category_01 (`hash` ASC),
RENAME TO Category $$
-- Config $$
-- Config
ALTER TABLE config
CHANGE config_parameter parameter VARCHAR(50) NOT NULL,
CHANGE config_value VALUE VARCHAR(4000),
@@ -251,7 +243,7 @@ ALTER TABLE config
ADD PRIMARY KEY (parameter),
RENAME TO Config $$
-- Customer $$
-- Customer
ALTER TABLE customers
CHANGE customer_id id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE customer_name name VARCHAR(100) NOT NULL,
@@ -262,7 +254,7 @@ ALTER TABLE customers
DROP INDEX IDX_name,
RENAME TO Client $$
-- Account $$
-- Account
ALTER TABLE accounts
CHANGE account_id id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE account_userGroupId userGroupId SMALLINT(5) UNSIGNED NOT NULL,
@@ -298,7 +290,7 @@ ALTER TABLE accounts
DROP INDEX IDX_parentId,
RENAME TO Account $$
-- AccountToFavorite $$
-- AccountToFavorite
ALTER TABLE accFavorites
DROP INDEX fk_accFavorites_users_idx,
DROP INDEX fk_accFavorites_accounts_idx,
@@ -308,7 +300,7 @@ ALTER TABLE accFavorites
ADD INDEX idx_AccountToFavorite_01 (accountId ASC, userId ASC),
RENAME TO AccountToFavorite $$
-- AccountHistory $$
-- AccountHistory
ALTER TABLE accHistory
CHANGE acchistory_id id INT(11) NOT NULL AUTO_INCREMENT,
CHANGE acchistory_accountId accountId MEDIUMINT UNSIGNED NOT NULL,
@@ -343,7 +335,7 @@ ALTER TABLE accHistory
ADD INDEX idx_AccountHistory_02 (parentId ASC),
RENAME TO AccountHistory $$
-- Tag $$
-- Tag
ALTER TABLE tags
CHANGE tag_id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE tag_name name VARCHAR(45) NOT NULL,
@@ -354,13 +346,13 @@ ALTER TABLE tags
ADD INDEX idx_Tag_01 (`name` ASC),
RENAME TO Tag $$
-- AccountToTag $$
-- AccountToTag
ALTER TABLE accTags
CHANGE acctag_accountId accountId MEDIUMINT UNSIGNED NOT NULL,
CHANGE acctag_tagId tagId INT(10) UNSIGNED NOT NULL,
RENAME TO AccountToTag $$
-- AccountToUserGroup $$
-- AccountToUserGroup
ALTER TABLE accGroups
CHANGE accgroup_accountId accountId MEDIUMINT UNSIGNED NOT NULL,
CHANGE accgroup_groupId userGroupId SMALLINT(5) UNSIGNED NOT NULL,
@@ -368,7 +360,7 @@ ALTER TABLE accGroups
ADD INDEX idx_AccountToUserGroup_01 (`accountId` ASC),
RENAME TO AccountToUserGroup $$
-- AccountToUser $$
-- AccountToUser
ALTER TABLE accUsers
CHANGE accuser_accountId accountId MEDIUMINT UNSIGNED NOT NULL,
CHANGE accuser_userId userId SMALLINT(5) UNSIGNED NOT NULL,
@@ -376,7 +368,7 @@ ALTER TABLE accUsers
ADD INDEX idx_AccountToUser_01 (accountId ASC),
RENAME TO AccountToUser $$
-- UserToUserGroup $$
-- UserToUserGroup
ALTER TABLE usrToGroups
CHANGE usertogroup_userId userId SMALLINT(5) UNSIGNED NOT NULL,
CHANGE usertogroup_groupId userGroupId SMALLINT(5) UNSIGNED NOT NULL,
@@ -384,14 +376,14 @@ ALTER TABLE usrToGroups
ADD INDEX idx_UserToUserGroup_01 (userId ASC),
RENAME TO UserToUserGroup $$
-- UserGroup $$
-- UserGroup
ALTER TABLE usrGroups
CHANGE usergroup_id id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE usergroup_name name VARCHAR(50) NOT NULL,
CHANGE usergroup_description description VARCHAR(255),
RENAME TO UserGroup $$
-- AuthToken $$
-- AuthToken
ALTER TABLE authTokens
CHANGE authtoken_id id INT(11) NOT NULL AUTO_INCREMENT,
CHANGE authtoken_userId userId SMALLINT(5) UNSIGNED NOT NULL,
@@ -407,7 +399,7 @@ ALTER TABLE authTokens
ADD INDEX idx_AuthToken_01 (userId ASC, actionId ASC, token ASC),
RENAME TO AuthToken $$
-- UserPassRecover $$
-- UserPassRecover
ALTER TABLE usrPassRecover
CHANGE userpassr_id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
CHANGE userpassr_userId userId SMALLINT(5) UNSIGNED NOT NULL,
@@ -418,7 +410,7 @@ ALTER TABLE usrPassRecover
ADD INDEX idx_UserPassRecover_01 (userId ASC, date ASC),
RENAME TO UserPassRecover $$
-- Views $$
-- Views
CREATE OR REPLACE VIEW account_search_v AS
SELECT DISTINCT
`Account`.`id` AS `id`,
@@ -494,7 +486,7 @@ CREATE OR REPLACE VIEW account_data_v AS
ON ((`Account`.`clientId` = `Client`.`id`))) LEFT JOIN
`PublicLink` ON ((`Account`.`id` = `PublicLink`.`itemId`))) $$
-- Foreign Keys $$
-- Foreign Keys
CREATE INDEX fk_Account_userId
ON Account (userId) $$
@@ -604,7 +596,7 @@ CREATE INDEX fk_AccountToTag_accountId
CREATE INDEX fk_AccountToTag_tagId
ON AccountToTag (tagId) $$
-- Fix duplicated tags $$
-- Fix duplicated tags
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_tags AS (SELECT
accountId,
tagId
@@ -656,7 +648,7 @@ ALTER TABLE AccountToUser
CREATE INDEX fk_AuthToken_actionId
ON AuthToken (actionId) $$
-- Fix missing user's id $$
-- Fix missing user's id
DELETE FROM AuthToken
WHERE userId NOT IN (SELECT id
FROM User) $$

View File

@@ -298,7 +298,7 @@ CREATE TABLE `Notification` (
PRIMARY KEY (`id`),
KEY `idx_Notification_01` (`userId`,`checked`,`date`),
KEY `idx_Notification_02` (`component`,`date`,`checked`,`userId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `Plugin`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
@@ -311,7 +311,7 @@ CREATE TABLE `Plugin` (
`available` tinyint(1) DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_Plugin_01` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `PublicLink`;
/*!40101 SET @saved_cs_client = @@character_set_client */;