From 4dcfd46b8b6e3bbe9c12493e744be04d8861684e Mon Sep 17 00:00:00 2001 From: brettp Date: Sun, 10 Jan 2010 21:21:11 +0000 Subject: Fixes #1432: Version number is set during installation. Refs #1424: The upgrade functions now detect if no version number is saved to the db and silences all upgrade warnings and errors. This is required for all installations < this commit to upgrade correctly because of #1432. More strict regex for finding upgrade files. Upgrade mysql.sql schema with latest. git-svn-id: http://code.elgg.org/elgg/trunk@3791 36083f99-b078-4883-b0ff-0f9b5a30f544 --- actions/systemsettings/install.php | 5 +- engine/lib/database.php | 22 +- engine/lib/version.php | 49 ++- engine/schema/mysql.sql | 811 ++++++++++++++++++++----------------- 4 files changed, 494 insertions(+), 393 deletions(-) diff --git a/actions/systemsettings/install.php b/actions/systemsettings/install.php index c4f563beb..3e401bb5c 100644 --- a/actions/systemsettings/install.php +++ b/actions/systemsettings/install.php @@ -52,11 +52,10 @@ if (get_input('settings') == 'go') { } datalist_set('installed',time()); - datalist_set('path', $path); datalist_set('dataroot', $dataroot); - - datalist_set('default_site',$site->getGUID()); + datalist_set('default_site', $site->getGUID()); + datalist_set('version', get_version()); set_config('view', get_input('view'), $site->getGUID()); set_config('language', get_input('language'), $site->getGUID()); diff --git a/engine/lib/database.php b/engine/lib/database.php index 87b002508..262e651ee 100644 --- a/engine/lib/database.php +++ b/engine/lib/database.php @@ -518,9 +518,10 @@ function run_sql_script($scriptlocation) { * * @param int $version The version you are upgrading from (usually given in the Elgg version format of YYYYMMDDXX - see version.php for example) * @param string $fromdir Optional directory to load upgrades from (default: engine/schema/upgrades/) + * @param bool $quiet If true, will suppress all error messages. Don't use this. * @return bool */ -function db_upgrade($version, $fromdir = "") { +function db_upgrade($version, $fromdir = "", $quiet = FALSE) { global $CONFIG; // Elgg and its database must be installed to upgrade it! @@ -539,7 +540,7 @@ function db_upgrade($version, $fromdir = "") { while ($sqlfile = readdir($handle)) { if (!is_dir($fromdir . $sqlfile)) { - if (preg_match('/([0-9]*)\.sql/',$sqlfile,$matches)) { + if (preg_match('/^([0-9]{10})\.(sql)$/', $sqlfile, $matches)) { $sql_version = (int) $matches[1]; if ($sql_version > $version) { $sqlupgrades[] = $sqlfile; @@ -552,17 +553,22 @@ function db_upgrade($version, $fromdir = "") { if (sizeof($sqlupgrades) > 0) { foreach($sqlupgrades as $sqlfile) { -// let's not allow failing upgrade to pass. -// try { + + // hide all errors. + if ($quiet) { + try { + run_sql_script($fromdir . $sqlfile); + } catch (DatabaseException $e) { + error_log($e->getmessage()); + } + } else { run_sql_script($fromdir . $sqlfile); -// } catch (DatabaseException $e) { -// error_log($e->getmessage()); -// } + } } } } - return true; + return TRUE; } /** diff --git a/engine/lib/version.php b/engine/lib/version.php index 3728fb8ec..3cf321a0f 100644 --- a/engine/lib/version.php +++ b/engine/lib/version.php @@ -11,14 +11,15 @@ /** * Run any php upgrade scripts which are required * - * @param unknown_type $version + * @param int $version Version upgrading from. + * @param bool $quiet Suppress errors. Don't use this. */ -function upgrade_code($version) { +function upgrade_code($version, $quiet = FALSE) { global $CONFIG; // Elgg and its database must be installed to upgrade it! if (!is_db_installed() || !is_installed()) { - return false; + return FALSE; } $version = (int) $version; @@ -29,7 +30,7 @@ function upgrade_code($version) { while ($updatefile = readdir($handle)) { // Look for upgrades and add to upgrades list if (!is_dir($CONFIG->path . 'engine/lib/upgrades/' . $updatefile)) { - if (preg_match('/([0-9]*)\.php/',$updatefile,$matches)) { + if (preg_match('/^([0-9]{10})\.(php)$/', $updatefile, $matches)) { $core_version = (int) $matches[1]; if ($core_version > $version) { $upgrades[] = $updatefile; @@ -40,20 +41,29 @@ function upgrade_code($version) { // Sort and execute asort($upgrades); + if (sizeof($upgrades) > 0) { foreach($upgrades as $upgrade) { - try { + // hide all errors. + if ($quiet) { + // hide include errors as well as any exceptions that might happen + try { + if (!@include($CONFIG->path . 'engine/lib/upgrades/' . $upgrade)) { + error_log($e->getmessage()); + } + } catch (Exception $e) { + error_log($e->getmessage()); + } + } else { include($CONFIG->path . 'engine/lib/upgrades/' . $upgrade); - } catch (Exception $e) { - error_log($e->getmessage()); } } } - return true; + return TRUE; } - return false; + return FALSE; } /** @@ -66,11 +76,10 @@ function get_version($humanreadable = false) { global $CONFIG; if (include($CONFIG->path . "version.php")) { - if (!$humanreadable) return $version; - return $release; + return (!$humanreadable) ? $version : $release; } - return false; + return FALSE; } /** @@ -83,10 +92,10 @@ function version_upgrade_check() { $version = get_version(); if ($version > $dbversion) { - return true; + return TRUE; } - return false; + return FALSE; } /** @@ -96,12 +105,18 @@ function version_upgrade_check() { function version_upgrade() { $dbversion = (int) datalist_get('version'); + // No version number? Oh snap...this is an upgrade from a clean installation < 1.7. + // Run all upgrades without error reporting and hope for the best. + // See http://trac.elgg.org/elgg/ticket/1432 for more. + $quiet = !$dbversion; + // Upgrade database - db_upgrade($dbversion); - system_message(elgg_echo('upgrade:db')); + if (db_upgrade($dbversion, '', $quiet)) { + system_message(elgg_echo('upgrade:db')); + } // Upgrade core - if (upgrade_code($dbversion)) { + if (upgrade_code($dbversion, $quiet)) { system_message(elgg_echo('upgrade:core')); } diff --git a/engine/schema/mysql.sql b/engine/schema/mysql.sql index dd5d43592..988e70d89 100644 --- a/engine/schema/mysql.sql +++ b/engine/schema/mysql.sql @@ -1,370 +1,451 @@ --- --- Main Elgg database --- --- @link http://elgg.org/ --- - --- -------------------------------------------------------- - --- --- *** The main tables *** --- - --- Site configuration. -CREATE TABLE `prefix_config` ( - `name` varchar(32) NOT NULL, - `value` text NOT NULL, - `site_guid` int(11) NOT NULL, - PRIMARY KEY (`name`,`site_guid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Define entities. -CREATE TABLE `prefix_entities` ( - `guid` bigint(20) unsigned NOT NULL auto_increment, - - `type` enum ('object', 'user', 'group', 'site') NOT NULL, - `subtype` int(11) NULL, - - `owner_guid` bigint(20) unsigned NOT NULL, - `site_guid` bigint(20) unsigned NOT NULL, - `container_guid` bigint(20) unsigned NOT NULL, - `access_id` int(11) NOT NULL, - - `time_created` int(11) NOT NULL, - `time_updated` int(11) NOT NULL, - - `enabled` enum ('yes', 'no') NOT NULL default 'yes', - - primary key (`guid`), - KEY `type` (`type`), - KEY `subtype` (`subtype`), - KEY `owner_guid` (`owner_guid`), - KEY `site_guid` (`site_guid`), - KEY `container_guid` (`container_guid`), - KEY `access_id` (`access_id`), - KEY `time_created` (`time_created`), - KEY `time_updated` (`time_updated`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Entity subtypes - lets you subtype one of the main objects (sites/objects/etc) -CREATE TABLE `prefix_entity_subtypes` ( - `id` int(11) NOT NULL auto_increment, - - `type` enum ('object', 'user', 'group', 'site') NOT NULL, - `subtype` varchar(50) NOT NULL, - - class varchar(50) NOT NULL default '', - - PRIMARY KEY (`id`), - UNIQUE KEY (`type`, `subtype`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Describe relationships between entities, can describe friendships but also site membership, depending on context -CREATE TABLE `prefix_entity_relationships` ( - `id` int(11) NOT NULL auto_increment, - - `guid_one` bigint(20) unsigned NOT NULL, - `relationship` varchar(50) NOT NULL, - `guid_two` bigint(20) unsigned NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY (`guid_one`,`relationship`,`guid_two`), - KEY `relationship` (`relationship`), - KEY `guid_two` (`guid_two`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- --- *** Access controls *** --- - --- Table structure for table `access_collections` -CREATE TABLE `prefix_access_collections` ( - `id` int(11) NOT NULL auto_increment, - `name` text NOT NULL, - `owner_guid` bigint(20) unsigned NOT NULL, - `site_guid` bigint(20) unsigned NOT NULL default '0', - - PRIMARY KEY (`id`), - KEY `owner_guid` (`owner_guid`), - KEY `site_guid` (`site_guid`) -) AUTO_INCREMENT=3 ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Access containers -CREATE TABLE `prefix_access_collection_membership` ( - `user_guid` int(11) NOT NULL, - `access_collection_id` int(11) NOT NULL, - PRIMARY KEY (`user_guid`,`access_collection_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - - --- --- *** Entity superclass details *** --- NB: Aside from GUID, these should now have any field names in common with the entities table. --- - --- Extra information relating to "objects" -CREATE TABLE `prefix_objects_entity` ( - `guid` bigint(20) unsigned NOT NULL, - - `title` text NOT NULL, - `description` text NOT NULL, - +-- +-- Main Elgg database +-- +-- @link http://elgg.org/ +-- + +-- -------------------------------------------------------- + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `prefix_access_collection_membership` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_access_collection_membership` ( + `user_guid` int(11) NOT NULL, + `access_collection_id` int(11) NOT NULL, + PRIMARY KEY (`user_guid`,`access_collection_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_access_collections` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_access_collections` ( + `id` int(11) NOT NULL auto_increment, + `name` text NOT NULL, + `owner_guid` bigint(20) unsigned NOT NULL, + `site_guid` bigint(20) unsigned NOT NULL default '0', + PRIMARY KEY (`id`), + KEY `owner_guid` (`owner_guid`), + KEY `site_guid` (`site_guid`) +) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_annotations` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_annotations` ( + `id` int(11) NOT NULL auto_increment, + `entity_guid` bigint(20) unsigned NOT NULL, + `name_id` int(11) NOT NULL, + `value_id` int(11) NOT NULL, + `value_type` enum('integer','text') NOT NULL, + `owner_guid` bigint(20) unsigned NOT NULL, + `access_id` int(11) NOT NULL, + `time_created` int(11) NOT NULL, + `enabled` enum('yes','no') NOT NULL default 'yes', + PRIMARY KEY (`id`), + KEY `entity_guid` (`entity_guid`), + KEY `name_id` (`name_id`), + KEY `value_id` (`value_id`), + KEY `owner_guid` (`owner_guid`), + KEY `access_id` (`access_id`) +) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_api_users` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_api_users` ( + `id` int(11) NOT NULL auto_increment, + `site_guid` bigint(20) unsigned default NULL, + `api_key` varchar(40) default NULL, + `secret` varchar(40) NOT NULL, + `active` int(1) default '1', + PRIMARY KEY (`id`), + UNIQUE KEY `api_key` (`api_key`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_config` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_config` ( + `name` varchar(32) NOT NULL, + `value` text NOT NULL, + `site_guid` int(11) NOT NULL, + PRIMARY KEY (`name`,`site_guid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_datalists` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_datalists` ( + `name` varchar(32) NOT NULL, + `value` text NOT NULL, + PRIMARY KEY (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_entities` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_entities` ( + `guid` bigint(20) unsigned NOT NULL auto_increment, + `type` enum('object','user','group','site') NOT NULL, + `subtype` int(11) default NULL, + `owner_guid` bigint(20) unsigned NOT NULL, + `site_guid` bigint(20) unsigned NOT NULL, + `container_guid` bigint(20) unsigned NOT NULL, + `access_id` int(11) NOT NULL, + `time_created` int(11) NOT NULL, + `time_updated` int(11) NOT NULL, + `enabled` enum('yes','no') NOT NULL default 'yes', PRIMARY KEY (`guid`), - FULLTEXT KEY (`title`,`description`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Extra information relating to "sites" -CREATE TABLE `prefix_sites_entity` ( - `guid` bigint(20) unsigned NOT NULL, - - `name` text NOT NULL, - `description` text NOT NULL, - `url` varchar(255) NOT NULL, - - PRIMARY KEY (`guid`), - UNIQUE KEY (`url`), - FULLTEXT KEY (`name`,`description`, `url`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Extra information relating to "users" -CREATE TABLE `prefix_users_entity` ( - `guid` bigint(20) unsigned NOT NULL, - - `name` text NOT NULL, - `username` varchar(128) NOT NULL default '', - `password` varchar(32) NOT NULL default '', - `salt` varchar(8) NOT NULL default '', - `email` text NOT NULL, - `language` varchar(6) NOT NULL default '', - `code` varchar(32) NOT NULL default '', - `banned` enum ('yes', 'no') NOT NULL default 'no', - - `last_action` int(11) NOT NULL default '0', - `prev_last_action` int(11) NOT NULL default '0', - `last_login` int(11) NOT NULL default '0', - `prev_last_login` int(11) NOT NULL default '0', - - PRIMARY KEY (`guid`), - UNIQUE KEY (`username`), - KEY `password` (`password`), - KEY `email` (`email`(50)), - KEY `code` (`code`), - KEY `last_action` (`last_action`), - KEY `last_login` (`last_login`), - FULLTEXT KEY `name` (`name`), - FULLTEXT KEY (`name`,`username`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; + KEY `type` (`type`), + KEY `subtype` (`subtype`), + KEY `owner_guid` (`owner_guid`), + KEY `site_guid` (`site_guid`), + KEY `container_guid` (`container_guid`), + KEY `access_id` (`access_id`), + KEY `time_created` (`time_created`), + KEY `time_updated` (`time_updated`) +) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_entity_relationships` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_entity_relationships` ( + `id` int(11) NOT NULL auto_increment, + `guid_one` bigint(20) unsigned NOT NULL, + `relationship` varchar(50) NOT NULL, + `guid_two` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `guid_one` (`guid_one`,`relationship`,`guid_two`), + KEY `relationship` (`relationship`), + KEY `guid_two` (`guid_two`) +) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_entity_subtypes` +-- --- Extra information relating to "groups" +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_entity_subtypes` ( + `id` int(11) NOT NULL auto_increment, + `type` enum('object','user','group','site') NOT NULL, + `subtype` varchar(50) NOT NULL, + `class` varchar(50) NOT NULL default '', + PRIMARY KEY (`id`), + UNIQUE KEY `type` (`type`,`subtype`) +) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_geocode_cache` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_geocode_cache` ( + `id` int(11) NOT NULL auto_increment, + `location` varchar(128) default NULL, + `lat` varchar(20) default NULL, + `long` varchar(20) default NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `location` (`location`) +) ENGINE=MEMORY DEFAULT CHARSET=latin1; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_groups_entity` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; CREATE TABLE `prefix_groups_entity` ( - `guid` bigint(20) unsigned NOT NULL, - - `name` text NOT NULL, - `description` text NOT NULL, - - PRIMARY KEY (`guid`), - KEY `name` (`name`(50)), + `guid` bigint(20) unsigned NOT NULL, + `name` text NOT NULL, + `description` text NOT NULL, + PRIMARY KEY (`guid`), + KEY `name` (`name`(50)), KEY `description` (`description`(50)), - FULLTEXT KEY (`name`,`description`) + FULLTEXT KEY `name_2` (`name`,`description`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- --- *** Annotations and tags *** --- - --- Table structure for annotations -CREATE TABLE `prefix_annotations` ( - `id` int(11) NOT NULL auto_increment, - - `entity_guid` bigint(20) unsigned NOT NULL, - - `name_id` int(11) NOT NULL, - `value_id` int(11) NOT NULL, - `value_type` enum ('integer','text') NOT NULL, - - `owner_guid` bigint(20) unsigned NOT NULL, - `access_id` int(11) NOT NULL, - - `time_created` int(11) NOT NULL, - - `enabled` enum ('yes', 'no') NOT NULL default 'yes', - - PRIMARY KEY (`id`), - KEY `entity_guid` (`entity_guid`), - KEY `name_id` (`name_id`), - KEY `value_id` (`value_id`), - KEY `owner_guid` (`owner_guid`), - KEY `access_id` (`access_id`) - -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Table structure for metadata -CREATE TABLE `prefix_metadata` ( - `id` int(11) NOT NULL auto_increment, - - `entity_guid` bigint(20) unsigned NOT NULL, - - `name_id` int(11) NOT NULL, - `value_id` int(11) NOT NULL, - `value_type` enum ('integer','text') NOT NULL, - - `owner_guid` bigint(20) unsigned NOT NULL, - `access_id` int(11) NOT NULL, - - `time_created` int(11) NOT NULL, - - `enabled` enum ('yes', 'no') NOT NULL default 'yes', - - PRIMARY KEY (`id`), - KEY `entity_guid` (`entity_guid`), - KEY `name_id` (`name_id`), - KEY `value_id` (`value_id`), - KEY `owner_guid` (`owner_guid`), - KEY `access_id` (`access_id`) - -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Meta strings table (avoids storing text strings more than once) -CREATE TABLE `prefix_metastrings` ( - `id` int(11) NOT NULL auto_increment, - `string` TEXT NOT NULL, - - PRIMARY KEY (`id`), - KEY `string` (`string`(50)) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- --- *** Misc *** --- - --- API Users -CREATE TABLE `prefix_api_users` ( - id int(11) auto_increment, - - site_guid bigint(20) unsigned, - - api_key varchar(40), - secret varchar(40) NOT NULL, - active int(1) default 1, - - unique key (api_key), - primary key (id) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- API Sessions -CREATE TABLE `prefix_users_apisessions` ( - `id` int(11) NOT NULL auto_increment, - `user_guid` bigint(20) unsigned NOT NULL, - `site_guid` bigint(20) unsigned NOT NULL, - - `token` varchar(40), - - `expires` int(11) NOT NULL, - - PRIMARY KEY (`id`), - UNIQUE KEY (`user_guid`,`site_guid`), - KEY `token` (`token`) -) ENGINE=MEMORY; - --- HMAC Cache protecting against Replay attacks -CREATE TABLE `prefix_hmac_cache` ( - `hmac` varchar(255) NOT NULL, - `ts` int(11) NOT NULL, - - PRIMARY KEY (`hmac`), - KEY `ts` (`ts`) -) ENGINE=MEMORY; - --- Geocode engine cache -CREATE TABLE `prefix_geocode_cache` ( - id int(11) auto_increment, - location varchar(128), - `lat` varchar(20), - `long` varchar(20), - - PRIMARY KEY (`id`), - UNIQUE KEY `location` (`location`) - -) ENGINE=MEMORY; - --- PHP Session storage -CREATE TABLE `prefix_users_sessions` ( - `session` varchar(255) NOT NULL, - `ts` int(11) unsigned NOT NULL default '0', - `data` mediumblob, - - PRIMARY KEY `session` (`session`), - KEY `ts` (`ts`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Datalists for things like db version -CREATE TABLE `prefix_datalists` ( - `name` varchar(32) NOT NULL, - `value` text NOT NULL, - PRIMARY KEY `name` (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Ultra-private system settings for entities -CREATE TABLE `prefix_private_settings` ( - `id` INT NOT NULL auto_increment, - `entity_guid` INT NOT NULL , - `name` varchar(128) NOT NULL , - `value` TEXT NOT NULL , - PRIMARY KEY ( `id` ) , - UNIQUE KEY ( `entity_guid` , `name` ), - KEY `name` (`name`), - KEY `value` (`value` (50)) -) ENGINE = MYISAM DEFAULT CHARSET=utf8; - --- System log -CREATE TABLE `prefix_system_log` ( - `id` int(11) NOT NULL auto_increment, - - `object_id` int(11) NOT NULL, - - `object_class` varchar(50) NOT NULL, - `object_type` varchar(50) NOT NULL, - `object_subtype` varchar(50) NOT NULL, - - `event` varchar(50) NOT NULL, - `performed_by_guid` int(11) NOT NULL, - - `owner_guid` int(11) NOT NULL, - `access_id` int(11) NOT NULL, - - `enabled` enum ('yes', 'no') NOT NULL default 'yes', - - `time_created` int(11) NOT NULL, - - PRIMARY KEY (`id`), - KEY `object_id` (`object_id`), - KEY `object_class` (`object_class`), - KEY `object_type` (`object_type`), - KEY `object_subtype` (`object_subtype`), - KEY `event` (`event`), - KEY `performed_by_guid` (`performed_by_guid`), - KEY `access_id` (`access_id`), - KEY `time_created` (`time_created`), - KEY `river_key` (`object_type`, `object_subtype`, `event`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- River - CREATE TABLE `prefix_river` ( - `id` INT NOT NULL AUTO_INCREMENT , - `type` VARCHAR( 8 ) NOT NULL , - `subtype` VARCHAR( 32 ) NOT NULL , - `action_type` VARCHAR( 32 ) NOT NULL , - `access_id` INT NOT NULL , - `view` TEXT NOT NULL , - `subject_guid` INT NOT NULL , - `object_guid` INT NOT NULL , - `annotation_id` int(11) NOT NULL, - `posted` INT NOT NULL , - PRIMARY KEY ( `id` ) , - KEY `type` (`type`), - KEY `action_type` (`action_type`), - KEY `access_id` (`access_id`), - KEY `subject_guid` (`subject_guid`), - KEY `object_guid` (`object_guid`), - KEY `annotation_id` (`annotation_id`), - KEY `posted` (`posted`) -) ENGINE = MYISAM DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_hmac_cache` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_hmac_cache` ( + `hmac` varchar(255) NOT NULL, + `ts` int(11) NOT NULL, + PRIMARY KEY (`hmac`), + KEY `ts` (`ts`) +) ENGINE=MEMORY DEFAULT CHARSET=latin1; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_metadata` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_metadata` ( + `id` int(11) NOT NULL auto_increment, + `entity_guid` bigint(20) unsigned NOT NULL, + `name_id` int(11) NOT NULL, + `value_id` int(11) NOT NULL, + `value_type` enum('integer','text') NOT NULL, + `owner_guid` bigint(20) unsigned NOT NULL, + `access_id` int(11) NOT NULL, + `time_created` int(11) NOT NULL, + `enabled` enum('yes','no') NOT NULL default 'yes', + PRIMARY KEY (`id`), + KEY `entity_guid` (`entity_guid`), + KEY `name_id` (`name_id`), + KEY `value_id` (`value_id`), + KEY `owner_guid` (`owner_guid`), + KEY `access_id` (`access_id`) +) ENGINE=MyISAM AUTO_INCREMENT=92 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_metastrings` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_metastrings` ( + `id` int(11) NOT NULL auto_increment, + `string` text NOT NULL, + PRIMARY KEY (`id`), + KEY `string` (`string`(50)) +) ENGINE=MyISAM AUTO_INCREMENT=67 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_objects_entity` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_objects_entity` ( + `guid` bigint(20) unsigned NOT NULL, + `title` text NOT NULL, + `description` text NOT NULL, + PRIMARY KEY (`guid`), + FULLTEXT KEY `title` (`title`,`description`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_private_settings` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_private_settings` ( + `id` int(11) NOT NULL auto_increment, + `entity_guid` int(11) NOT NULL, + `name` varchar(128) NOT NULL, + `value` text NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `entity_guid` (`entity_guid`,`name`), + KEY `name` (`name`), + KEY `value` (`value`(50)) +) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_river` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_river` ( + `id` int(11) NOT NULL auto_increment, + `type` varchar(8) NOT NULL, + `subtype` varchar(32) NOT NULL, + `action_type` varchar(32) NOT NULL, + `access_id` int(11) NOT NULL, + `view` text NOT NULL, + `subject_guid` int(11) NOT NULL, + `object_guid` int(11) NOT NULL, + `annotation_id` int(11) NOT NULL, + `posted` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `type` (`type`), + KEY `action_type` (`action_type`), + KEY `access_id` (`access_id`), + KEY `subject_guid` (`subject_guid`), + KEY `object_guid` (`object_guid`), + KEY `annotation_id` (`annotation_id`), + KEY `posted` (`posted`) +) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_sites_entity` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_sites_entity` ( + `guid` bigint(20) unsigned NOT NULL, + `name` text NOT NULL, + `description` text NOT NULL, + `url` varchar(255) NOT NULL, + PRIMARY KEY (`guid`), + UNIQUE KEY `url` (`url`), + FULLTEXT KEY `name` (`name`,`description`,`url`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_system_log` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_system_log` ( + `id` int(11) NOT NULL auto_increment, + `object_id` int(11) NOT NULL, + `object_class` varchar(50) NOT NULL, + `object_type` varchar(50) NOT NULL, + `object_subtype` varchar(50) NOT NULL, + `event` varchar(50) NOT NULL, + `performed_by_guid` int(11) NOT NULL, + `owner_guid` int(11) NOT NULL, + `access_id` int(11) NOT NULL, + `enabled` enum('yes','no') NOT NULL default 'yes', + `time_created` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `object_id` (`object_id`), + KEY `object_class` (`object_class`), + KEY `object_type` (`object_type`), + KEY `object_subtype` (`object_subtype`), + KEY `event` (`event`), + KEY `performed_by_guid` (`performed_by_guid`), + KEY `access_id` (`access_id`), + KEY `time_created` (`time_created`), + KEY `river_key` (`object_type`,`object_subtype`,`event`) +) ENGINE=MyISAM AUTO_INCREMENT=194 DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_users_apisessions` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_users_apisessions` ( + `id` int(11) NOT NULL auto_increment, + `user_guid` bigint(20) unsigned NOT NULL, + `site_guid` bigint(20) unsigned NOT NULL, + `token` varchar(40) default NULL, + `expires` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_guid` (`user_guid`,`site_guid`), + KEY `token` (`token`) +) ENGINE=MEMORY DEFAULT CHARSET=latin1; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_users_entity` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_users_entity` ( + `guid` bigint(20) unsigned NOT NULL, + `name` text NOT NULL, + `username` varchar(128) NOT NULL default '', + `password` varchar(32) NOT NULL default '', + `salt` varchar(8) NOT NULL default '', + `email` text NOT NULL, + `language` varchar(6) NOT NULL default '', + `code` varchar(32) NOT NULL default '', + `banned` enum('yes','no') NOT NULL default 'no', + `last_action` int(11) NOT NULL default '0', + `prev_last_action` int(11) NOT NULL default '0', + `last_login` int(11) NOT NULL default '0', + `prev_last_login` int(11) NOT NULL default '0', + PRIMARY KEY (`guid`), + UNIQUE KEY `username` (`username`), + KEY `password` (`password`), + KEY `email` (`email`(50)), + KEY `code` (`code`), + KEY `last_action` (`last_action`), + KEY `last_login` (`last_login`), + FULLTEXT KEY `name` (`name`), + FULLTEXT KEY `name_2` (`name`,`username`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `prefix_users_sessions` +-- + +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `prefix_users_sessions` ( + `session` varchar(255) NOT NULL, + `ts` int(11) unsigned NOT NULL default '0', + `data` mediumblob, + PRIMARY KEY (`session`), + KEY `ts` (`ts`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +SET character_set_client = @saved_cs_client; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2010-01-08 20:13:45 -- cgit v1.2.3