mirror of
https://github.com/nuxsmin/sysPass.git
synced 2026-03-03 07:04:07 +01:00
* [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:
@@ -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');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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 = '';
|
||||
}
|
||||
@@ -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;
|
||||
@@ -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`;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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`;
|
||||
@@ -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;
|
||||
@@ -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);
|
||||
@@ -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;
|
||||
@@ -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`;
|
||||
@@ -1,2 +0,0 @@
|
||||
ALTER TABLE `accounts`
|
||||
CHANGE COLUMN `account_id` `account_id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT;
|
||||
@@ -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`)));
|
||||
|
||||
@@ -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`)));
|
||||
@@ -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`;
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
ALTER TABLE `accHistory` CHANGE COLUMN `acchistory_pass` `acchistory_pass` VARBINARY(1000) NOT NULL;
|
||||
@@ -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) $$
|
||||
|
||||
@@ -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 */;
|
||||
|
||||
Reference in New Issue
Block a user