);
|
{CODE}
|
|
+some examples of what is available: |
+! datadict |
+{code source=PHP} |
+// create new tables |
+// 'CREATE': |
+ array( 'CREATE' => array ( |
+ 'tiki_article_status' => " |
+ status_id I4 PRIMARY, |
+ status_name C(64) |
+ ", |
+ )), |
+// add columns to tables |
+// 'ALTER': |
+ array( 'ALTER' => array( |
+ 'tiki_articles' => array( |
+ 'content_id' => array( '`content_id`', 'I4' ), |
+ 'description' => array( '`description`', 'X' ), |
+ 'status_id' => array( '`status_id`', 'I4' ), |
+ 'image_attachment_id' => array( '`image_attachment_id`', 'I4' ), |
+ 'article_type_id' => array( '`article_type_id`', 'I4' ), |
+ ), |
+ 'tiki_article_types' => array( |
+ 'article_type_id' => array( '`article_type_id`', 'I4' ), |
+ ), |
+ 'tiki_article_topics' => array( |
+ 'has_topic_image' => array( '`has_topic_image`', 'VARCHAR(1)' ), |
+ ), |
+ )), |
+// rename existing tables |
+// 'RENAMETABLE': |
+ array( 'RENAMETABLE' => array( |
+ 'tiki_articles' => 'articles', |
+ 'tiki_article_status' => 'article_status', |
+ 'tiki_article_types' => 'article_types', |
+ 'tiki_article_topics' => 'article_topics', |
+ )), |
+// rename columns in tables |
+// 'RENAMECOLUMN': |
+ array( 'RENAMECOLUMN' => array( |
+ 'article_topics' => array( |
+ '`active`' => 'active_topic' |
+ ), |
+ )), |
+// rename a sequence |
+// 'RENAMESEQUENCE': |
+ array( 'RENAMESEQUENCE' => array( |
+ "tiki_article_topics_topic_id_seq" => "article_topics_t_id_seq", |
+ "tiki_article_types_topic_id_seq" => "article_types_t_id_seq", |
+ "tiki_article_article_id_seq" => "article_article_id_seq", |
+ )), |
+// drop a column from an existing table |
+// 'DROPCOLUMN': |
+ array( 'DROPCOLUMN' => array( |
+ 'tiki_submissions' => array( '`bibliographical_references`' ), |
+ )), |
+// drop an existing table |
+// 'DROPTABLE': |
+ array( 'DROPTABLE' => array( |
+ 'tiki_content' |
+ )), |
+// create an index |
+// 'CREATEINDEX': |
+ array( 'CREATEINDEX' => array( |
+ 'tiki_content_title_idx' => array( 'tiki_content', '`title`', array() ), |
+ 'tiki_content_user_idx' => array( 'tiki_content', '`user_id`', array() ), |
+ 'tiki_content_moduser_idx' => array( 'tiki_content', '`modifier_user_id`', array() ), |
+ 'tiki_content_hits_idx' => array( 'tiki_content', '`hits`', array() ), |
+ 'tiki_comments_content_idx' => array( 'tiki_comments', '`content_id`', array() ), |
+ 'tiki_struct_user_idx' => array( 'tiki_structures', '`user_id`', array() ), |
+ 'tiki_struct_root_idx' => array( 'tiki_structures', '`root_structure_id`', array() ), |
+ 'tiki_struct_content_idx' => array( 'tiki_structures', '`content_id`', array() ), |
+ )), |
+{/code} |
+ |
+! query |
+{code source=PHP} |
+// allows you to execute SQL direclty, like updates and the like. if your |
+// SQL is different for different DBs, you can restrict it using the following: |
+ // 'MYSQL' : |
+ // 'PGSQL' : |
+ // 'SQL92' : |
+ "UPDATE `".BIT_DB_PREFIX."tiki_comments` SET `objectType`='".BITARTICLE_CONTENT_TYPE_GUID."' WHERE `objectType`='articles'", |
+{/code} |
+ |
+! php |
+{code source=PHP} |
+// allows you to simply pass PHP strings to the upgrader. this gives you |
+// unlimited control over what can be done in the upgrader. you can copy |
+// files and do all sorts of cool stuff this way |
+ ' global $gBitSystem; |
+ require_once( ARTICLES_PKG_PATH."BitArticle.php" ); |
+ |
+ // BitArticle has 3 sequences, each needs creating prior to execution |
+ $max_articles = $gBitSystem->mDb->getOne( "SELECT MAX(`article_id`) FROM `'.BIT_DB_PREFIX.'tiki_articles`" ); |
+ $gBitSystem->mDb->CreateSequence( "tiki_articles_article_id_seq", $max_articles + 1 ); |
+ $max_topics = $gBitSystem->mDb->getOne( "SELECT MAX(`topic_id`) FROM `'.BIT_DB_PREFIX.'tiki_article_topics`" ); |
+ $gBitSystem->mDb->CreateSequence( "tiki_article_topics_topic_id_seq", $max_topics + 1 ); |
+ $max_types = $gBitSystem->mDb->getOne( "SELECT MAX(`article_type_id`) FROM `'.BIT_DB_PREFIX.'tiki_article_types`" ); |
+ $gBitSystem->mDb->CreateSequence( "tiki_article_types_article_type_id_seq", $max_types + 1 ); ' |
+{/code} |
+ |
+The best way to get a feel for the upgrader is by looking at existing upgrade_inc.php files |
|