aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-01-10 21:21:11 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-01-10 21:21:11 +0000
commit4dcfd46b8b6e3bbe9c12493e744be04d8861684e (patch)
tree424b5dcb93bd68c87a022fb8d206932017b3d782
parent80add6be750f65bea1108d306201b7f90ae5f88a (diff)
downloadelgg-4dcfd46b8b6e3bbe9c12493e744be04d8861684e.tar.gz
elgg-4dcfd46b8b6e3bbe9c12493e744be04d8861684e.tar.bz2
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
-rw-r--r--actions/systemsettings/install.php5
-rw-r--r--engine/lib/database.php22
-rw-r--r--engine/lib/version.php49
-rw-r--r--engine/schema/mysql.sql811
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