From 70c50e27f00d80f8fafa4cd53e127bb1b1da68ed Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 22 Dec 2018 19:51:26 +0100 Subject: [PATCH] Move schema to json --- Admin/Install/db.json | 110 ++++++++++++++++++++++++++++++++++++++++++ Admin/Installer.php | 60 ----------------------- 2 files changed, 110 insertions(+), 60 deletions(-) create mode 100644 Admin/Install/db.json diff --git a/Admin/Install/db.json b/Admin/Install/db.json new file mode 100644 index 0000000..f849ecc --- /dev/null +++ b/Admin/Install/db.json @@ -0,0 +1,110 @@ +{ + "news": { + "name": "news", + "fields": { + "news_id": { + "name": "news_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "news_title": { + "name": "news_title", + "type": "VARCHAR(255)", + "null": false + }, + "news_featured": { + "name": "news_featured", + "type": "TINYINT", + "default": null, + "null": true + }, + "news_content": { + "name": "news_content", + "type": "TEXT", + "null": false + }, + "news_plain": { + "name": "news_plain", + "type": "TEXT", + "null": false + }, + "news_type": { + "name": "news_type", + "type": "TINYINT", + "null": false + }, + "news_status": { + "name": "news_status", + "type": "TINYINT", + "null": false + }, + "news_lang": { + "name": "news_lang", + "type": "VARCHAR(2)", + "null": false + }, + "news_publish": { + "name": "news_publish", + "type": "DATETIME", + "null": false + }, + "news_created_at": { + "name": "news_created_at", + "type": "DATETIME", + "null": false + }, + "news_created_by": { + "name": "news_created_by", + "type": "INT", + "null": false, + "foreignTable": "account", + "foreignKey": "account_id" + } + } + }, + "news_badge": { + "name": "news_badge", + "fields": { + "news_badge_id": { + "name": "news_badge_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "news_badge_title": { + "name": "news_badge_title", + "type": "VARCHAR(25)", + "null": false + } + } + }, + "news_badge_relation": { + "name": "news_badge_relation", + "fields": { + "news_badge_relation_id": { + "name": "news_badge_relation_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "news_badge_relation_news": { + "name": "news_badge_relation_news", + "type": "INT", + "null": false, + "foreignTable": "news", + "foreignKey": "news_id" + }, + "news_badge_relation_badge": { + "name": "news_badge_relation_badge", + "type": "INT", + "null": false, + "foreignTable": "news_badge", + "foreignKey": "news_badge_id" + } + } + } +} \ No newline at end of file diff --git a/Admin/Installer.php b/Admin/Installer.php index 49b12e2..3a5ca4d 100644 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -29,64 +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->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'news` ( - `news_id` int(11) NOT NULL AUTO_INCREMENT, - `news_title` varchar(250) NOT NULL, - `news_featured` tinyint(1) DEFAULT NULL, - `news_content` text NOT NULL, - `news_plain` text NOT NULL, - `news_type` tinyint(2) NOT NULL, - `news_status` tinyint(1) NOT NULL, - `news_lang` varchar(2) NOT NULL, - `news_publish` datetime NOT NULL, - `news_created_at` datetime NOT NULL, - `news_created_by` int(11) NOT NULL, - PRIMARY KEY (`news_id`), - KEY `news_created_by` (`news_created_by`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'news` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'news_ibfk_1` FOREIGN KEY (`news_created_by`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'news_badge` ( - `news_badge_id` int(11) NOT NULL AUTO_INCREMENT, - `news_badge_title` varchar(20) NOT NULL, - PRIMARY KEY (`news_badge_id`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'news_badge_relation` ( - `news_badge_relation_id` int(11) NOT NULL AUTO_INCREMENT, - `news_badge_relation_news` int(11) NOT NULL, - `news_badge_relation_badge` int(11) NOT NULL, - PRIMARY KEY (`news_badge_relation_id`), - KEY `news_badge_relation_news` (`news_badge_relation_news`), - KEY `news_badge_relation_badge` (`news_badge_relation_badge`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'news_badge_relation` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'news_badge_relation_ibfk_1` FOREIGN KEY (`news_badge_relation_news`) REFERENCES `' . $dbPool->get()->prefix . 'news` (`news_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'news_badge_relation_ibfk_2` FOREIGN KEY (`news_badge_relation_badge`) REFERENCES `' . $dbPool->get()->prefix . 'news_badge` (`news_badge_id`);' - )->execute(); - break; - } - } }