Move schema to json

This commit is contained in:
Dennis Eichhorn 2018-12-22 19:51:26 +01:00
parent 35fb1698fd
commit 6543ba808e
2 changed files with 577 additions and 237 deletions

577
Admin/Install/db.json Normal file
View File

@ -0,0 +1,577 @@
{
"language": {
"name": "language",
"fields": {
"language_id": {
"name": "language_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"language_name": {
"name": "language_name",
"type": "VARCHAR(100)",
"null": false
},
"language_native": {
"name": "language_native",
"type": "VARCHAR(100)",
"null": false
}
}
},
"group": {
"name": "group",
"fields": {
"group_id": {
"name": "group_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"group_name": {
"name": "group_name",
"type": "VARCHAR(50)",
"null": false
},
"group_status": {
"name": "group_status",
"type": "TINYINT",
"null": false
},
"group_desc": {
"name": "group_desc",
"type": "TEXT",
"default": null,
"null": true
},
"group_desc_raw": {
"name": "group_desc_raw",
"type": "TEXT",
"default": null,
"null": true
},
"group_created": {
"name": "group_created",
"type": "DATETIME",
"default": null,
"null": true
}
}
},
"group_permission": {
"name": "group_permission",
"fields": {
"group_permission_id": {
"name": "group_permission_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"group_permission_group": {
"name": "group_permission_group",
"type": "INT",
"null": false,
"foreignTable": "group",
"foreignKey": "group_id"
},
"group_permission_unit": {
"name": "group_permission_unit",
"type": "INT",
"default": null,
"null": true
},
"group_permission_app": {
"name": "group_permission_app",
"type": "VARCHAR(255)",
"default": null,
"null": true
},
"group_permission_module": {
"name": "group_permission_module",
"type": "VARCHAR(255)",
"default": null,
"null": true
},
"group_permission_from": {
"name": "group_permission_from",
"type": "INT",
"default": null,
"null": true
},
"group_permission_type": {
"name": "group_permission_type",
"type": "INT",
"default": null,
"null": true
},
"group_permission_element": {
"name": "group_permission_element",
"type": "INT",
"default": null,
"null": true
},
"group_permission_component": {
"name": "group_permission_component",
"type": "INT",
"default": null,
"null": true
},
"group_permission_permission": {
"name": "group_permission_permission",
"type": "INT",
"default": null,
"null": true
}
}
},
"l11n": {
"name": "l11n",
"fields": {
"l11n_id": {
"name": "l11n_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"l11n_country": {
"name": "l11n_country",
"type": "VARCHAR(20)",
"null": false
},
"l11n_language": {
"name": "l11n_language",
"type": "VARCHAR(20)",
"null": false
},
"l11n_currency": {
"name": "l11n_currency",
"type": "VARCHAR(20)",
"null": false
},
"l11n_number_thousand": {
"name": "l11n_number_thousand",
"type": "VARCHAR(20)",
"null": false
},
"l11n_number_decimal": {
"name": "l11n_number_decimal",
"type": "VARCHAR(20)",
"null": false
},
"l11n_angle": {
"name": "l11n_angle",
"type": "VARCHAR(20)",
"null": false
},
"l11n_temperature": {
"name": "l11n_temperature",
"type": "VARCHAR(20)",
"null": false
},
"l11n_weight_very_light": {
"name": "l11n_weight_very_light",
"type": "VARCHAR(20)",
"null": false
},
"l11n_weight_light": {
"name": "l11n_weight_light",
"type": "VARCHAR(20)",
"null": false
},
"l11n_weight_medium": {
"name": "l11n_weight_medium",
"type": "VARCHAR(20)",
"null": false
},
"l11n_weight_heavy": {
"name": "l11n_weight_heavy",
"type": "VARCHAR(20)",
"null": false
},
"l11n_weight_very_heavy": {
"name": "l11n_weight_very_heavy",
"type": "VARCHAR(20)",
"null": false
},
"l11n_speed_very_slow": {
"name": "l11n_speed_very_slow",
"type": "VARCHAR(20)",
"null": false
},
"l11n_speed_slow": {
"name": "l11n_speed_slow",
"type": "VARCHAR(20)",
"null": false
},
"l11n_speed_medium": {
"name": "l11n_speed_medium",
"type": "VARCHAR(20)",
"null": false
},
"l11n_speed_fast": {
"name": "l11n_speed_fast",
"type": "VARCHAR(20)",
"null": false
},
"l11n_speed_very_fast": {
"name": "l11n_speed_very_fast",
"type": "VARCHAR(20)",
"null": false
},
"l11n_speed_sea": {
"name": "l11n_speed_sea",
"type": "VARCHAR(20)",
"null": false
},
"l11n_length_very_short": {
"name": "l11n_length_very_short",
"type": "VARCHAR(20)",
"null": false
},
"l11n_length_short": {
"name": "l11n_length_short",
"type": "VARCHAR(20)",
"null": false
},
"l11n_length_medium": {
"name": "l11n_length_medium",
"type": "VARCHAR(20)",
"null": false
},
"l11n_length_long": {
"name": "l11n_length_long",
"type": "VARCHAR(20)",
"null": false
},
"l11n_length_very_long": {
"name": "l11n_length_very_long",
"type": "VARCHAR(20)",
"null": false
},
"l11n_length_sea": {
"name": "l11n_length_sea",
"type": "VARCHAR(20)",
"null": false
},
"l11n_area_very_small": {
"name": "l11n_area_very_small",
"type": "VARCHAR(20)",
"null": false
},
"l11n_area_small": {
"name": "l11n_area_small",
"type": "VARCHAR(20)",
"null": false
},
"l11n_area_medium": {
"name": "l11n_area_medium",
"type": "VARCHAR(20)",
"null": false
},
"l11n_area_large": {
"name": "l11n_area_large",
"type": "VARCHAR(20)",
"null": false
},
"l11n_area_very_large": {
"name": "l11n_area_very_large",
"type": "VARCHAR(20)",
"null": false
},
"l11n_volume_very_small": {
"name": "l11n_volume_very_small",
"type": "VARCHAR(20)",
"null": false
},
"l11n_volume_small": {
"name": "l11n_volume_small",
"type": "VARCHAR(20)",
"null": false
},
"l11n_volume_medium": {
"name": "l11n_volume_medium",
"type": "VARCHAR(20)",
"null": false
},
"l11n_volume_large": {
"name": "l11n_volume_large",
"type": "VARCHAR(20)",
"null": false
},
"l11n_volume_very_large": {
"name": "l11n_volume_very_large",
"type": "VARCHAR(20)",
"null": false
},
"l11n_volume_teaspoon": {
"name": "l11n_volume_teaspoon",
"type": "VARCHAR(20)",
"null": false
},
"l11n_volume_tablespoon": {
"name": "l11n_volume_tablespoon",
"type": "VARCHAR(20)",
"null": false
},
"l11n_volume_glass": {
"name": "l11n_volume_glass",
"type": "VARCHAR(20)",
"null": false
}
}
},
"account": {
"name": "account",
"fields": {
"account_id": {
"name": "account_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"account_status": {
"name": "account_status",
"type": "TINYINT",
"null": false
},
"account_type": {
"name": "account_type",
"type": "TINYINT",
"null": false
},
"account_login": {
"name": "account_login",
"type": "VARCHAR(50)",
"default": null,
"null": true,
"unique": true
},
"account_name1": {
"name": "account_name1",
"type": "VARCHAR(50)",
"null": false
},
"account_name2": {
"name": "account_name2",
"type": "VARCHAR(50)",
"null": false
},
"account_name3": {
"name": "account_name3",
"type": "VARCHAR(50)",
"null": false
},
"account_password": {
"name": "account_password",
"type": "VARCHAR(64)",
"default": null,
"null": true
},
"account_password_temp": {
"name": "account_password_temp",
"type": "VARCHAR(64)",
"default": null,
"null": true
},
"account_email": {
"name": "account_email",
"type": "VARCHAR(70)",
"null": false
},
"account_tries": {
"name": "account_tries",
"type": "TINYINT",
"null": false,
"default": 0
},
"account_lactive": {
"name": "account_lactive",
"type": "DATETIME",
"default": null,
"null": true
},
"account_localization": {
"name": "account_localization",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "l11n",
"foreignKey": "l11n_id"
},
"account_created_at": {
"name": "account_created_at",
"type": "DATETIME",
"null": false
}
}
},
"account_group": {
"name": "account_group",
"fields": {
"account_group_id": {
"name": "account_group_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"account_group_group": {
"name": "account_group_group",
"type": "INT",
"null": false,
"foreignTable": "group",
"foreignKey": "group_id"
},
"account_group_account": {
"name": "account_group_account",
"type": "INT",
"null": false,
"foreignTable": "account",
"foreignKey": "account_id"
}
}
},
"account_permission": {
"name": "account_permission",
"fields": {
"account_permission_id": {
"name": "account_permission_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"account_permission_account": {
"name": "account_permission_account",
"type": "INT",
"null": false,
"foreignTable": "account",
"foreignKey": "account_id"
},
"account_permission_unit": {
"name": "account_permission_unit",
"type": "INT",
"default": null,
"null": true
},
"account_permission_app": {
"name": "account_permission_app",
"type": "VARCHAR(255)",
"default": null,
"null": true
},
"account_permission_module": {
"name": "account_permission_module",
"type": "VARCHAR(255)",
"default": null,
"null": true
},
"account_permission_from": {
"name": "account_permission_from",
"type": "INT",
"default": null,
"null": true
},
"account_permission_type": {
"name": "account_permission_type",
"type": "INT",
"default": null,
"null": true
},
"account_permission_element": {
"name": "account_permission_element",
"type": "INT",
"default": null,
"null": true
},
"account_permission_component": {
"name": "account_permission_component",
"type": "INT",
"default": null,
"null": true
},
"account_permission_permission": {
"name": "account_permission_permission",
"type": "INT",
"default": null,
"null": true
}
}
},
"account_settings": {
"name": "account_settings",
"fields": {
"account_settings_id": {
"name": "account_settings_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"account_settings_name": {
"name": "account_settings_name",
"type": "VARCHAR(30)",
"null": false,
"unique": true
},
"account_settings_content": {
"name": "account_settings_content",
"type": "VARCHAR(250)",
"null": false
},
"account_settings_account": {
"name": "account_settings_account",
"type": "INT",
"null": false,
"foreignTable": "account",
"foreignKey": "account_id"
}
}
},
"settings": {
"name": "settings",
"fields": {
"settings_id": {
"name": "settings_id",
"type": "INT",
"null": false,
"primary": true,
"autoincrement": true
},
"settings_module": {
"name": "settings_module",
"type": "VARCHAR(255)",
"default": null,
"null": true,
"unique": true,
"foreignTable": "module",
"foreignKey": "module_id"
},
"settings_name": {
"name": "settings_name",
"type": "VARCHAR(30)",
"null": false,
"unique": true
},
"settings_content": {
"name": "settings_content",
"type": "VARCHAR(250)",
"null": false
},
"settings_group": {
"name": "settings_group",
"type": "INT",
"default": null,
"null": true,
"foreignTable": "group",
"foreignKey": "group_id"
}
}
}
}

View File

@ -29,241 +29,4 @@ use phpOMS\Module\InstallerAbstract;
*/
class Installer extends InstallerAbstract
{
/**
* {@inheritdoc}
*/
public static function install(DatabasePool $dbPool, InfoManager $info) : void
{
parent::install($dbPool, $info);
switch ($dbPool->get()->getType()) {
case DatabaseType::MYSQL:
$dbPool->get()->con->beginTransaction();
/* Languages */
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'language` (
`language_id` int(11) NOT NULL AUTO_INCREMENT,
`language_name` varchar(100) NOT NULL,
`language_native` varchar(100) NOT NULL,
PRIMARY KEY (`language_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
/* Create group table */
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'group` (
`group_id` int(11) NOT NULL AUTO_INCREMENT,
`group_name` varchar(50) NOT NULL,
`group_status` int(3) NOT NULL,
`group_desc` text DEFAULT NULL,
`group_desc_raw` text DEFAULT NULL,
`group_created` datetime DEFAULT NULL,
PRIMARY KEY (`group_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
/* Create group permission table */
/*
* idx = module specific element id (since one module can have multiple things that need permissions)
* e.g.
* id1 = report_template (since it could also be a permission for a report)
* id2 = report_template_id
*/
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'group_permission` (
`group_permission_id` int(11) NOT NULL AUTO_INCREMENT,
`group_permission_group` int(11) NOT NULL,
`group_permission_unit` int(11) DEFAULT NULL,
`group_permission_app` varchar(255) DEFAULT NULL,
`group_permission_module` varchar(255) DEFAULT NULL,
`group_permission_from` int(11) DEFAULT NULL,
`group_permission_type` int(11) DEFAULT NULL,
`group_permission_element` int(11) DEFAULT NULL,
`group_permission_component` int(11) DEFAULT NULL,
`group_permission_permission` int(11) DEFAULT NULL,
PRIMARY KEY (`group_permission_id`),
KEY `group_permission_group` (`group_permission_group`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
$dbPool->get()->con->prepare(
'ALTER TABLE `' . $dbPool->get()->prefix . 'group_permission`
ADD CONSTRAINT `' . $dbPool->get()->prefix . 'group_permission_ibfk_1` FOREIGN KEY (`group_permission_group`) REFERENCES `' . $dbPool->get()->prefix . 'group` (`group_id`);'
)->execute();
/* Create ips table
This gets used in order to prevent unauthorized access for user group. */
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'ips` (
`ips_id` int(11) NOT NULL AUTO_INCREMENT,
`ips_begin` bigint(20) NOT NULL,
`ips_end` bigint(20) NOT NULL,
`ips_group` int(11) DEFAULT NULL,
PRIMARY KEY (`ips_id`),
KEY `ips_group` (`ips_group`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
$dbPool->get()->con->prepare(
'ALTER TABLE `' . $dbPool->get()->prefix . 'ips`
ADD CONSTRAINT `' . $dbPool->get()->prefix . 'ips_ibfk_1` FOREIGN KEY (`ips_group`) REFERENCES `' . $dbPool->get()->prefix . 'group` (`group_id`);'
)->execute();
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'l11n` (
`l11n_id` int(11) NOT NULL AUTO_INCREMENT,
`l11n_country` varchar(20) NOT NULL,
`l11n_language` varchar(20) NOT NULL,
`l11n_currency` varchar(20) NOT NULL,
`l11n_number_thousand` varchar(20) NOT NULL,
`l11n_number_decimal` varchar(20) NOT NULL,
`l11n_angle` varchar(20) NOT NULL,
`l11n_temperature` varchar(20) NOT NULL,
`l11n_weight_very_light` varchar(20) NOT NULL,
`l11n_weight_light` varchar(20) NOT NULL,
`l11n_weight_medium` varchar(20) NOT NULL,
`l11n_weight_heavy` varchar(20) NOT NULL,
`l11n_weight_very_heavy` varchar(20) NOT NULL,
`l11n_speed_very_slow` varchar(20) NOT NULL,
`l11n_speed_slow` varchar(20) NOT NULL,
`l11n_speed_medium` varchar(20) NOT NULL,
`l11n_speed_fast` varchar(20) NOT NULL,
`l11n_speed_very_fast` varchar(20) NOT NULL,
`l11n_speed_sea` varchar(20) NOT NULL,
`l11n_length_very_short` varchar(20) NOT NULL,
`l11n_length_short` varchar(20) NOT NULL,
`l11n_length_medium` varchar(20) NOT NULL,
`l11n_length_long` varchar(20) NOT NULL,
`l11n_length_very_long` varchar(20) NOT NULL,
`l11n_length_sea` varchar(20) NOT NULL,
`l11n_area_very_small` varchar(20) NOT NULL,
`l11n_area_small` varchar(20) NOT NULL,
`l11n_area_medium` varchar(20) NOT NULL,
`l11n_area_large` varchar(20) NOT NULL,
`l11n_area_very_large` varchar(20) NOT NULL,
`l11n_volume_very_small` varchar(20) NOT NULL,
`l11n_volume_small` varchar(20) NOT NULL,
`l11n_volume_medium` varchar(20) NOT NULL,
`l11n_volume_large` varchar(20) NOT NULL,
`l11n_volume_very_large` varchar(20) NOT NULL,
`l11n_volume_teaspoon` varchar(20) NOT NULL,
`l11n_volume_tablespoon` varchar(20) NOT NULL,
`l11n_volume_glass` varchar(20) NOT NULL,
PRIMARY KEY (`l11n_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
/* Create account table */
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'account` (
`account_id` int(11) NOT NULL AUTO_INCREMENT,
`account_status` tinyint(2) NOT NULL,
`account_type` tinyint(2) NOT NULL,
`account_login` varchar(50) DEFAULT NULL,
`account_name1` varchar(50) NOT NULL,
`account_name2` varchar(50) NOT NULL,
`account_name3` varchar(50) NOT NULL,
`account_password` varchar(64) DEFAULT NULL,
`account_password_temp` varchar(64) DEFAULT NULL,
`account_email` varchar(70) NOT NULL,
`account_tries` tinyint(2) NOT NULL DEFAULT 0,
`account_lactive` datetime DEFAULT NULL,
`account_localization` int(11) DEFAULT NULL,
`account_created_at` datetime NOT NULL,
PRIMARY KEY (`account_id`),
UNIQUE KEY `account_login` (`account_login`),
KEY `account_localization` (`account_localization`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
$dbPool->get()->con->prepare(
'ALTER TABLE `' . $dbPool->get()->prefix . 'account`
ADD CONSTRAINT `' . $dbPool->get()->prefix . 'account_ibfk_1` FOREIGN KEY (`account_localization`) REFERENCES `' . $dbPool->get()->prefix . 'l11n` (`l11n_id`);'
)->execute();
/* Create account group table */
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'account_group` (
`account_group_id` bigint(20) NOT NULL AUTO_INCREMENT,
`account_group_group` int(11) NOT NULL,
`account_group_account` int(11) NOT NULL,
PRIMARY KEY (`account_group_id`),
KEY `account_group_group` (`account_group_group`),
KEY `account_group_account` (`account_group_account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
$dbPool->get()->con->prepare(
'ALTER TABLE `' . $dbPool->get()->prefix . 'account_group`
ADD CONSTRAINT `' . $dbPool->get()->prefix . 'account_group_ibfk_1` FOREIGN KEY (`account_group_group`) REFERENCES `' . $dbPool->get()->prefix . 'group` (`group_id`),
ADD CONSTRAINT `' . $dbPool->get()->prefix . 'account_group_ibfk_2` FOREIGN KEY (`account_group_account`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);'
)->execute();
/* Create account permission table */
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'account_permission` (
`account_permission_id` int(11) NOT NULL AUTO_INCREMENT,
`account_permission_account` int(11) NOT NULL,
`account_permission_unit` int(11) DEFAULT NULL,
`account_permission_app` int(11) DEFAULT NULL,
`account_permission_module` varchar(255) DEFAULT NULL,
`account_permission_from` int(11) DEFAULT NULL,
`account_permission_type` int(11) DEFAULT NULL,
`account_permission_element` int(11) DEFAULT NULL,
`account_permission_component` int(11) DEFAULT NULL,
`account_permission_permission` int(11) DEFAULT NULL,
PRIMARY KEY (`account_permission_id`),
KEY `account_permission_account` (`account_permission_account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
$dbPool->get()->con->prepare(
'ALTER TABLE `' . $dbPool->get()->prefix . 'account_permission`
ADD CONSTRAINT `' . $dbPool->get()->prefix . 'account_permission_ibfk_1` FOREIGN KEY (`account_permission_account`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);'
)->execute();
/* Create account settings table */
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'account_settings` (
`account_settings_id` int(11) NOT NULL AUTO_INCREMENT,
`account_settings_name` varchar(30) NOT NULL,
`account_settings_content` varchar(250) NOT NULL,
`account_settings_account` int(11) NOT NULL,
PRIMARY KEY (`account_settings_id`),
UNIQUE KEY `account_settings_name` (`account_settings_name`),
KEY `account_settings_account` (`account_settings_account`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
$dbPool->get()->con->prepare(
'ALTER TABLE `' . $dbPool->get()->prefix . 'account_settings`
ADD CONSTRAINT `' . $dbPool->get()->prefix . 'account_settings_ibfk_1` FOREIGN KEY (`account_settings_account`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);'
)->execute();
/* Create settings table */
$dbPool->get()->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'settings` (
`settings_id` int(11) NOT NULL AUTO_INCREMENT,
`settings_module` varchar(255) DEFAULT NULL,
`settings_name` varchar(100) NOT NULL,
`settings_content` varchar(255) NOT NULL,
`settings_group` int(11) DEFAULT NULL,
PRIMARY KEY (`settings_id`),
KEY `settings_module` (`settings_module`),
KEY `settings_group` (`settings_group`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;'
)->execute();
$dbPool->get()->con->prepare(
'ALTER TABLE `' . $dbPool->get()->prefix . 'settings`
ADD CONSTRAINT `' . $dbPool->get()->prefix . 'settings_ibfk_1` FOREIGN KEY (`settings_module`) REFERENCES `' . $dbPool->get()->prefix . 'module` (`module_id`),
ADD CONSTRAINT `' . $dbPool->get()->prefix . 'settings_ibfk_2` FOREIGN KEY (`settings_group`) REFERENCES `' . $dbPool->get()->prefix . 'group` (`group_id`);'
)->execute();
$dbPool->get()->con->commit();
break;
}
}
}