diff --git a/Admin/Install/db.json b/Admin/Install/db.json new file mode 100644 index 0000000..b02b3a6 --- /dev/null +++ b/Admin/Install/db.json @@ -0,0 +1,108 @@ +{ + "media": { + "name": "media", + "fields": { + "media_id": { + "name": "media_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "media_name": { + "name": "media_name", + "type": "VARCHAR(255)", + "null": false + }, + "media_description": { + "name": "media_description", + "type": "TEXT", + "default": null, + "null": true + }, + "media_description_raw": { + "name": "media_description_raw", + "type": "TEXT", + "default": null, + "null": true + }, + "media_path": { + "name": "media_path", + "type": "VARCHAR(255)", + "default": null, + "null": true + }, + "media_versioned": { + "name": "media_versioned", + "type": "TINYINT", + "null": false + }, + "media_file": { + "name": "media_file", + "type": "VARCHAR(255)", + "null": false + }, + "media_absolute": { + "name": "media_absolute", + "type": "TINYINT", + "null": false + }, + "media_extension": { + "name": "media_extension", + "type": "VARCHAR(50)", + "default": null, + "null": true + }, + "media_collection": { + "name": "media_collection", + "type": "TINYINT", + "default": null, + "null": true + }, + "media_size": { + "name": "media_size", + "type": "INT", + "default": null, + "null": true + }, + "media_created_by": { + "name": "media_created_by", + "type": "INT", + "null": false, + "foreignTable": "account", + "foreignKey": "account_id" + }, + "media_created_at": { + "name": "media_created_at", + "type": "DATETIME", + "null": false + } + } + }, + "media_relation": { + "name": "media_relation", + "fields": { + "media_relation_id": { + "name": "media_relation_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "media_relation_src": { + "name": "media_relation_src", + "type": "INT", + "null": false, + "foreignTable": "media", + "foreignKey": "media_id" + }, + "media_relation_dst": { + "name": "media_relation_dst", + "type": "INT", + "null": false, + "foreignTable": "media", + "foreignKey": "media_id" + } + } + } +} \ No newline at end of file diff --git a/Admin/Installer.php b/Admin/Installer.php index d19a118..4f8fef3 100644 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -14,9 +14,6 @@ declare(strict_types=1); namespace Modules\Media\Admin; -use phpOMS\DataStorage\Database\DatabasePool; -use phpOMS\DataStorage\Database\DatabaseType; -use phpOMS\Module\InfoManager; use phpOMS\Module\InstallerAbstract; /** @@ -29,57 +26,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 . 'media` ( - `media_id` int(11) NOT NULL AUTO_INCREMENT, - `media_name` varchar(100) DEFAULT NULL, - `media_description` text DEFAULT NULL, - `media_description_raw` text DEFAULT NULL, - `media_versioned` tinyint(1) NOT NULL, - `media_file` varchar(255) NOT NULL, - `media_absolute` tinyint(1) NOT NULL, - `media_extension` varchar(10) DEFAULT NULL, - `media_collection` tinyint(1) DEFAULT NULL, - `media_size` int(11) DEFAULT NULL, - `media_created_by` int(11) DEFAULT NULL, - `media_created_at` datetime DEFAULT NULL, - PRIMARY KEY (`media_id`), - KEY `media_created_by` (`media_created_by`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'media` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'media_ibfk_1` FOREIGN KEY (`media_created_by`) REFERENCES `' . $dbPool->get()->prefix . 'account` (`account_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'media_relation` ( - `media_relation_id` int(11) NOT NULL AUTO_INCREMENT, - `media_relation_src` int(11) NULL, - `media_relation_dst` int(11) NULL, - PRIMARY KEY (`media_relation_id`), - KEY `media_relation_src` (`media_relation_src`), - KEY `media_relation_dst` (`media_relation_dst`) - )ENGINE=InnoDB DEFAULT CHARSET=utf8;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'media_relation` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'media_relation_ibfk_1` FOREIGN KEY (`media_relation_src`) REFERENCES `' . $dbPool->get()->prefix . 'media` (`media_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'media_relation_ibfk_2` FOREIGN KEY (`media_relation_dst`) REFERENCES `' . $dbPool->get()->prefix . 'media` (`media_id`);' - )->execute(); - break; - } - } }