[pLog-svn] r3167 - in plog/trunk: . install

mark at devel.lifetype.net mark at devel.lifetype.net
Fri Mar 31 07:29:19 GMT 2006


Author: mark
Date: 2006-03-31 07:29:18 +0000 (Fri, 31 Mar 2006)
New Revision: 3167

Modified:
   plog/trunk/install/changes_10_11.properties.php
   plog/trunk/install/dbschemas.properties.php
   plog/trunk/wizard.php
Log:
Now we can specify the table type (or options) in schema files.

We can use:

1. $Tables["tablename"]["schema"] to represent the table create/change sql
2. $Tables["tablename"]["options"] to represent the table create options.

These modification apply to changes_10_11.properties.php and dbschemas.properties.php these two files.

I also modify the wizard.php to adapt the new changes.

Only one problem, I suppose different kind of database will have different dbschema file. So, I did not specify the ["options"] is for mysql, oracle or mssql.

Modified: plog/trunk/install/changes_10_11.properties.php
===================================================================
--- plog/trunk/install/changes_10_11.properties.php	2006-03-31 02:51:36 UTC (rev 3166)
+++ plog/trunk/install/changes_10_11.properties.php	2006-03-31 07:29:18 UTC (rev 3167)
@@ -1,10 +1,10 @@
 <?php
 
-$Changes["Deletions"] = Array(
+$Changes["Deletions"]["schema"] = Array(
     "ALTER TABLE {dbprefix}articles DROP COLUMN category_id"
 );
 
-$Changes["Articles"] = Array(    
+$Changes["Articles"]["schema"] = Array(    
     "ALTER TABLE {dbprefix}articles ADD COLUMN num_comments INTEGER(10) NOT NULL DEFAULT 0",
     "ALTER TABLE {dbprefix}articles ADD COLUMN num_nonspam_comments INTEGER(10) NOT NULL DEFAULT 0",
     "ALTER TABLE {dbprefix}articles ADD COLUMN num_trackbacks INTEGER(10) NOT NULL DEFAULT 0",
@@ -13,15 +13,15 @@
     "ALTER TABLE {dbprefix}articles ADD COLUMN in_summary_page TINYINT(10) NOT NULL DEFAULT 1", 
     "ALTER TABLE {dbprefix}articles ADD COLUMN modification_date TIMESTAMP(14) NOT NULL"
 );
-$Changes["Article Categories"] = Array(
+$Changes["Article Categories"]["schema"] = Array(
     "ALTER TABLE {dbprefix}articles_categories ADD COLUMN num_articles INTEGER(10) NOT NULL DEFAULT 0",
     "ALTER TABLE {dbprefix}articles_categories ADD COLUMN num_published_articles INTEGER(10) NOT NULL DEFAULT 0"
 );
-$Changes["Article Comments"] = Array(
+$Changes["Article Comments"]["schema"] = Array(
     "ALTER TABLE {dbprefix}articles_comments ADD COLUMN type INTEGER(2) NOT NULL DEFAULT 1",
     "ALTER TABLE {dbprefix}articles_comments ADD COLUMN blog_id INTEGER(10) NOT NULL DEFAULT 0",
 );
-$Changes["Blogs"] = Array(
+$Changes["Blogs"]["schema"] = Array(
     "ALTER TABLE {dbprefix}blogs ADD COLUMN create_date TIMESTAMP(14)",
     "ALTER TABLE {dbprefix}blogs ADD COLUMN last_update_date TIMESTAMP(14)",
     "ALTER TABLE {dbprefix}blogs ADD COLUMN num_posts INT(10) NOT NULL DEFAULT 0",
@@ -31,14 +31,14 @@
     "ALTER TABLE {dbprefix}blogs ADD COLUMN blog_category_id INT(4) NOT NULL DEFAULT 0",
     "ALTER TABLE {dbprefix}blogs ADD COLUMN custom_domain VARCHAR(50)"    
 );
-$Changes["Gallery Albums"] = Array(
+$Changes["Gallery Albums"]["schema"] = Array(
     "ALTER TABLE {dbprefix}gallery_albums ADD COLUMN num_resources INT(10)",
     "ALTER TABLE {dbprefix}gallery_albums ADD COLUMN num_children INT(10)"
 );
-$Changes["Links Categories"] = Array(
+$Changes["Links Categories"]["schema"] = Array(
     "ALTER TABLE {dbprefix}mylinks_categories ADD COLUMN num_links INT(10)"
 );
-$Changes["Users"] = Array(
+$Changes["Users"]["schema"] = Array(
     "ALTER TABLE {dbprefix}users ADD COLUMN site_admin INT(10)"
 );
 

Modified: plog/trunk/install/dbschemas.properties.php
===================================================================
--- plog/trunk/install/dbschemas.properties.php	2006-03-31 02:51:36 UTC (rev 3166)
+++ plog/trunk/install/dbschemas.properties.php	2006-03-31 07:29:18 UTC (rev 3167)
@@ -1,6 +1,6 @@
-<?php
+<?php
 
-$Tables["articles"] = "
+$Tables["articles"]["schema"] = "
   id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
   category_id I(10) UNSIGNED NOTNULL DEFAULT '0',
   date T(14) NOTNULL,
@@ -23,11 +23,12 @@
   INDEX user_id (user_id),
   INDEX slug (slug),
   INDEX blog_id_slug (blog_id,slug),
-  INDEX blog_id_slug_category_id (blog_id, slug, category_id)
+  INDEX blog_id_slug_category_id (blog_id, slug, category_id),
   INDEX global_category_status (global_category_id, status)  
 ";
+$Tables["articles"]["options"] = "TYPE=MyISAM";
 
-$Tables["articles_categories"] = "
+$Tables["articles_categories"]["schema"] = "
   id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
   name C(255) NOTNULL DEFAULT '',
   url C(255) NOTNULL DEFAULT '',
@@ -40,13 +41,14 @@
   mangled_name C(255) NOTNULL DEFAULT '',
   num_articles I(10) NOTNULL DEFAULT 0,
   num_published_articles I(10) NOTNULL DEFAULT 0
-  INDEX parent_id (parent_id),
-  INDEX blog_id (blog_id),
+  INDEX parent_id (parent_id),
+  INDEX blog_id (blog_id),
   INDEX mangled_name (mangled_name)
 ";
+$Tables["articles_categories"]["options"] = "TYPE=MyISAM";
 
 
-$Tables["articles_comments"] = "
+$Tables["articles_comments"]["schema"] = "
   id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
   article_id I(10) UNSIGNED NOTNULL DEFAULT 0,
   blog_id I(10) UNSIGNED NOTNULL DEFAULT 0,
@@ -73,8 +75,9 @@
   FULLTEXT normalized_text (normalized_text),
   FULLTEXT normalized_topic (normalized_topic)
 ";
+$Tables["articles_comments"]["options"] = "TYPE=MyISAM";
 
-$Tables["articles_notifications"] = "
+$Tables["articles_notifications"]["schema"] = "
   id I(10) NOTNULL AUTOINCREMENT PRIMARY,
   blog_id I(10) NOTNULL DEFAULT '0',
   user_id I(10) NOTNULL DEFAULT '0',
@@ -83,8 +86,9 @@
   INDEX user_id (user_id),
   INDEX blog_id (blog_id)
 ";
+$Tables["articles_notifications"]["options"] = "TYPE=MyISAM";
 
-$Tables["blogs"] = "
+$Tables["blogs"]["schema"] = "
   id I(10) UNSIGNED NOTNULL AUTOINCREMENT INDEX PRIMARY,
   blog varchar(50) NOTNULL DEFAULT '',
   owner_id I(10) UNSIGNED NOTNULL DEFAULT '0',
@@ -105,8 +109,9 @@
   INDEX blog_category_id(blog_category_id),
   INDEX custom_domain(custom_domain)
 ";
+$Tables["blogs"]["options"] = "TYPE=MyISAM";
 
-$Tables["mylinks"] = "
+$Tables["mylinks"]["schema"] = "
   id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
   category_id I(10) UNSIGNED NOTNULL DEFAULT '0',
   url C(255) NOTNULL DEFAULT '',
@@ -119,8 +124,9 @@
   INDEX blog_id (blog_id),
   INDEX category_id (category_id)
 ";
+$Tables["mylinks"]["options"] = "TYPE=MyISAM";
 
-$Tables["mylinks_categories"] = "
+$Tables["mylinks_categories"]["schema"] = "
   id I(10) NOTNULL AUTOINCREMENT PRIMARY,
   name varchar(100) NOTNULL DEFAULT '',
   blog_id I(10) NOTNULL DEFAULT '0',
@@ -129,14 +135,16 @@
   num_links I(10) NOTNULL DEFAULT '0',
   INDEX blog_id (blog_id)
 ";
+$Tables["mylinks_categories"]["options"] = "TYPE=MyISAM";
 
-$Tables["permissions"] = "
+$Tables["permissions"]["schema"] = "
   id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
   permission varchar(25) NOTNULL DEFAULT '',
   description varchar(100) NOTNULL DEFAULT ''
 ";
+$Tables["permissions"]["options"] = "TYPE=MyISAM";
 
-$Tables["referers"] = "
+$Tables["referers"]["schema"] = "
   id I(10) NOTNULL AUTOINCREMENT PRIMARY,
   url X NOTNULL,
   article_id I(10) NOTNULL DEFAULT '0',
@@ -147,8 +155,9 @@
   INDEX blog_id (blog_id),
   INDEX blog_id_article_id (blog_id, article_id)
 ";
+$Tables["referers"]["options"] = "TYPE=MyISAM";
 
-$Tables["users"] = "
+$Tables["users"]["schema"] = "
   id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
   user varchar(15) NOTNULL DEFAULT '',
   password varchar(32) NOTNULL DEFAULT '',
@@ -161,8 +170,9 @@
   site_admin I(10) NOTNULL DEFAULT '0',
   UNIQUE user (user)
 ";
+$Tables["users"]["options"] = "TYPE=MyISAM";
 
-$Tables["users_permissions"] = "
+$Tables["users_permissions"]["schema"] = "
   id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
   user_id I(10) UNSIGNED NOTNULL DEFAULT '0',
   blog_id I(10) UNSIGNED NOTNULL DEFAULT '0',
@@ -171,16 +181,17 @@
   INDEX blog_id (blog_id),
   INDEX user_id_permission_id (user_id,permission_id)
 ";
+$Tables["users_permissions"]["options"] = "TYPE=MyISAM";
 
-
-$Tables["config"] = "
+$Tables["config"]["schema"] = "
    id I(10) NOTNULL AUTOINCREMENT PRIMARY,
    config_key C(255) NOTNULL DEFAULT '' PRIMARY,
    config_value X NOTNULL,
    value_type I(3) DEFAULT '0'
 ";
+$Tables["config"]["options"] = "TYPE=MyISAM";
 
-$Tables["filtered_content"] = "
+$Tables["filtered_content"]["schema"] = "
    id I(10) NOTNULL AUTOINCREMENT PRIMARY,
    reg_exp X,
    blog_id I(10) NOTNULL DEFAULT '0',
@@ -188,8 +199,9 @@
    date T(14) NOTNULL,
    INDEX blog_id (blog_id)
 ";
+$Tables["filtered_content"]["options"] = "TYPE=MyISAM";
 
-$Tables["host_blocking_rules"] = "
+$Tables["host_blocking_rules"]["schema"] = "
    id I(10) NOTNULL AUTOINCREMENT PRIMARY,
    reason X,
    date T(14) NOTNULL,
@@ -200,8 +212,9 @@
    host varchar(15) DEFAULT '0.0.0.0',
    INDEX blog_id (blog_id)
 ";
+$Tables["host_blocking_rules"]["options"] = "TYPE=MyISAM";
 
-$Tables["gallery_resources"] = "
+$Tables["gallery_resources"]["schema"] = "
    id I(10) NOTNULL AUTOINCREMENT PRIMARY,
    owner_id I(10) NOTNULL DEFAULT '0',
    album_id I(10) NOTNULL DEFAULT '0',
@@ -223,8 +236,9 @@
    INDEX resource_type (resource_type),
    FULLTEXT normalized_description (normalized_description)
 ";
+$Tables["gallery_resources"]["options"] = "TYPE=MyISAM";
 
-$Tables["gallery_albums"] = "
+$Tables["gallery_albums"]["schema"] = "
    id I(10) NOTNULL AUTOINCREMENT PRIMARY,
    owner_id I(10) NOTNULL DEFAULT '0',
    description X NOTNULL,
@@ -247,16 +261,18 @@
    FULLTEXT normalized_description (normalized_description),
    FULLTEXT normalized_fields (normalized_name, normalized_description)
 ";
+$Tables["gallery_albums"]["options"] = "TYPE=MyISAM";
 
-$Tables["bayesian_filter_info"] = "
+$Tables["bayesian_filter_info"]["schema"] = "
    id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
    blog_id I(10) UNSIGNED DEFAULT NULL,
    total_spam I(10) UNSIGNED DEFAULT NULL,
    total_nonspam I(10) UNSIGNED DEFAULT NULL,
    INDEX blog_id (blog_id)
 ";
+$Tables["bayesian_filter_info"]["options"] = "TYPE=MyISAM";
 
-$Tables["bayesian_tokens"] = "
+$Tables["bayesian_tokens"]["schema"] = "
    id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
    blog_id I(10) UNSIGNED DEFAULT NULL,
    token char(100) DEFAULT NULL,
@@ -266,13 +282,15 @@
    INDEX blog_id (blog_id),
    INDEX token (token)
 ";
+$Tables["bayesian_tokens"]["options"] = "TYPE=MyISAM";
 
-$Tables["article_categories_link"] = "
+$Tables["article_categories_link"]["schema"] = "
    article_id I(10) NOTNULL PRIMARY,
    category_id I(10) NOTNULL PRIMARY
 ";
+$Tables["article_categories_link"]["options"] = "TYPE=MyISAM";
 
-$Tables["custom_fields_definition"] = "
+$Tables["custom_fields_definition"]["schema"] = "
    id I(10) NOTNULL AUTOINCREMENT PRIMARY,
    field_name C(255) NOTNULL DEFAULT '' PRIMARY,
    field_description X NOTNULL,
@@ -283,8 +301,9 @@
    hidden I1 DEFAULT 1,
    INDEX blog_id (blog_id)
 ";
+$Tables["custom_fields_definition"]["options"] = "TYPE=MyISAM";
 
-$Tables["custom_fields_values"] = "
+$Tables["custom_fields_values"]["schema"] = "
    id I(10) NOTNULL AUTOINCREMENT PRIMARY,
    field_id I(10) NOTNULL DEFAULT '0',
    field_value X NOTNULL,
@@ -297,8 +316,9 @@
    INDEX field_id (field_id),
    INDEX blog_id_article_id (blog_id, article_id)
 ";
+$Tables["custom_fields_values"]["options"] = "TYPE=MyISAM";
 
-$Tables["articles_text"] = "
+$Tables["articles_text"]["schema"] = "
    id I(10) NOTNULL AUTOINCREMENT PRIMARY,
    article_id I(10) NOTNULL DEFAULT 0,
    text X NOTNULL DEFAULT '',
@@ -311,8 +331,9 @@
    FULLTEXT normalized_topic (normalized_topic),
    FULLTEXT normalized_fields (normalized_text, normalized_topic)
 ";
+$Tables["articles_text"]["options"] = "TYPE=MyISAM";
    
-$Tables["phpbb2_users"] = "
+$Tables["phpbb2_users"]["schema"] = "
    id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
    phpbb_id I(10) UNSIGNED NOTNULL,
    full_name C(255) NOTNULL DEFAULT '',
@@ -322,8 +343,9 @@
    status I(10) NOTNULL DEFAULT 0,
    UNIQUE phpbb_id(phpbb_id)
 ";
+$Tables["phpbb2_users"]["options"] = "TYPE=MyISAM";
    
-$Tables["blog_categories"] = "
+$Tables["blog_categories"]["schema"] = "
    id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
    name C(255) NOTNULL DEFAULT '',
    description C(255) NOTNULL DEFAULT '',
@@ -333,8 +355,9 @@
    num_active_blogs I(10) NOTNULL DEFAULT '0',
    INDEX mangled_name(mangled_name)
 ";
+$Tables["blog_categories"]["options"] = "TYPE=MyISAM";
    
-$Tables["global_articles_categories"] = "
+$Tables["global_articles_categories"]["schema"] = "
    id I(10) UNSIGNED NOTNULL AUTOINCREMENT PRIMARY,
    name C(255) NOTNULL DEFAULT '',
    description C(255) NOTNULL DEFAULT '',
@@ -344,5 +367,6 @@
    num_active_articles I(10) NOTNULL DEFAULT '0',
    INDEX mangled_name(mangled_name)
 ";
-
+$Tables["global_articles_categories"]["options"] = "TYPE=MyISAM";
+
 ?>
\ No newline at end of file

Modified: plog/trunk/wizard.php
===================================================================
--- plog/trunk/wizard.php	2006-03-31 02:51:36 UTC (rev 3166)
+++ plog/trunk/wizard.php	2006-03-31 07:29:18 UTC (rev 3167)
@@ -702,8 +702,17 @@
             $errors = false;            
             
             foreach( $Tables as $name => $table ) {
-                $sqlarray = $dict->CreateTableSQL( $this->_dbPrefix.$name, $table, array( "MYSQL" => "TYPE=MyISAM" ) );
-                
+            	$upperName = $dict->upperName;
+            	$tableSchema = $table["schema"];
+            	if ( isset( $table["options"] ) )
+            	{
+            		$tableOptions = $table["options"];
+            		$options = array ( $upperName => $tableOptions );
+            	} else {
+            		$options = array ();
+                }
+                $sqlarray = $dict->CreateTableSQL( $this->_dbPrefix.$name, $tableSchema, $options );
+
                 // each table may need more than one sql query because of indexes, triggers, etc...
                 $ok = true;
                 foreach( $sqlarray as $sql ) {
@@ -1108,16 +1117,21 @@
             // ---
             $dict = NewDataDictionary( $this->_db );            
             $errors = false;
-            foreach( $Tables as $name => $table ) {
+            foreach( $Changes as $name => $change ) {
                 $errorMessage = "";
-                
+            	$upperName = $dict->upperName;
+            	$changeSchema = $change["schema"];
+            	if ( isset( $change["options"] ) )
+            	{
+            		$changeOptions = $change["options"];
+            		$options = array ( $upperName => $changeOptions );
+            	} else {
+            		$options = array ();
+                }
+               
                 // generate the code with the changes for the table
-                $sqlarray = $dict->ChangeTableSQL( $this->_dbPrefix.$name, $table );
+                $sqlarray = $dict->ChangeTableSQL( $this->_dbPrefix.$name, $changeSchema, $options );
                 
-                echo "===";
-                print_r($sqlarray);
-                echo "===";
-                
                 //print("<hr/><pre>");
                 foreach( $sqlarray as $sql ) {
                     //print($sql."<br/>");



More information about the pLog-svn mailing list