<?php $this->query("\n CREATE TABLE `api_provider` (\n `provider_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n `code` varchar(30) NOT NULL,\n `name` varchar(60) NOT NULL,\n `icon` varchar(50) NULL DEFAULT NULL,\n `created_at` datetime NOT NULL,\n `updated_at` datetime NOT NULL,\n PRIMARY KEY (`provider_id`)\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n CREATE TABLE `api_key` (\n `key_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n `provider_id` int(11) unsigned NOT NULL,\n `key` varchar(30) NULL DEFAULT NULL,\n `value` varchar(255) NULL DEFAULT NULL,\n `created_at` datetime NOT NULL,\n `updated_at` datetime NOT NULL,\n PRIMARY KEY (`key_id`),\n KEY `KEY_PROVIDER_ID` (`provider_id`)\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n"); $this->query("\n CREATE TABLE `api_user` (\n `user_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n `username` varchar(50) NOT NULL,\n `firstname` varchar(50) NULL DEFAULT NULL,\n `lastname` varchar(50) NULL DEFAULT NULL,\n `password` varchar(100) NOT NULL,\n `created_at` datetime NOT NULL,\n `updated_at` datetime NOT NULL,\n PRIMARY KEY (`user_id`)\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n"); $this->query("\n ALTER TABLE `api_key`\n ADD FOREIGN KEY `FK_PROVIDER_ID` (`provider_id`) REFERENCES `api_provider` (`provider_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n"); $apis = array(array("code" => "instagram", "icon" => "fa-instagram", "keys" => array("token", "client_id")), array("code" => "facebook", "icon" => "fa-facebook-square", "keys" => array("app_id", "secret_key")), array("code" => "youtube", "icon" => "fa-youtube", "keys" => array("api_key")), array("code" => "soundcloud", "icon" => "fa-soundcloud", "keys" => array("client_id", "secret_id"))); foreach ($apis as $provider_data) { $provider_name = ucfirst($provider_data["code"]); $provider = new Api_Model_Provider(); $provider->setData(array("code" => $provider_data["code"], "name" => $provider_name, "icon" => $provider_data["icon"]))->save(); foreach ($provider_data["keys"] as $key) { $data = array('provider_id' => $provider->getId(), 'key' => $key); $key = new Api_Model_Key(); $key->setData($data)->save(); } }
<?php $this->query("\n CREATE TABLE `api_provider` (\n `provider_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n `code` varchar(30) NOT NULL,\n `name` varchar(60) NOT NULL,\n `created_at` datetime NOT NULL,\n `updated_at` datetime NOT NULL,\n PRIMARY KEY (`provider_id`)\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n CREATE TABLE `api_key` (\n `key_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n `provider_id` int(11) unsigned NOT NULL,\n `key` varchar(30) NULL DEFAULT NULL,\n `value` varchar(255) NULL DEFAULT NULL,\n `created_at` datetime NOT NULL,\n `updated_at` datetime NOT NULL,\n PRIMARY KEY (`key_id`),\n KEY `KEY_PROVIDER_ID` (`provider_id`)\n ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n"); $this->query("\n ALTER TABLE `api_key`\n ADD FOREIGN KEY `FK_PROVIDER_ID` (`provider_id`) REFERENCES `api_provider` (`provider_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n"); $apis = array('instagram' => array('token', 'client_id'), 'facebook' => array('app_id', 'secret_key'), 'youtube' => array('api_key')); foreach ($apis as $provider_code => $keys) { $provider_name = ucfirst($provider_code); $provider = new Api_Model_Provider(); $provider->setData(array('code' => $provider_code, 'name' => $provider_name))->save(); foreach ($keys as $key) { $datas = array('provider_id' => $provider->getId(), 'key' => $key); $key = new Api_Model_Key(); $key->setData($datas)->save(); } }