Преглед на файлове

- Initial installer: create/remove query table, set schema version

Frederic G. Marand преди 15 години
родител
ревизия
7889a76d8a
променени са 1 файла, в които са добавени 93 реда и са изтрити 0 реда
  1. 93 0
      qbf.install

+ 93 - 0
qbf.install

@@ -0,0 +1,93 @@
+<?php
+/**
+ * QBF module - installer
+ *
+ * @copyright 2008 Ouest Systèmes Informatiques SARL
+ * @author FG Marand
+ * @license GPL2 or later
+ * @package QBF
+ */
+
+// $Id: qbf.install,v 1.1 2008-09-02 08:39:07 marand Exp $
+
+/**
+ * Implement hook_install().
+ *
+ * - Create the QBF tables
+ *   - qbf_queries
+ * - Assign initial settings
+ *   - none
+ *
+ * @todo support PGSQL
+ * @return void
+ */
+function qbf_install()
+  {
+  switch ($GLOBALS['db_type'])
+    {
+    case 'mysql':
+    case 'mysqli':
+      $sq = 'CREATE TABLE {qbf_queries} '
+          . '  ( '
+          . "  `qid`                   INT(10)          NOT NULL DEFAULT '0' COMMENT 'Query ID', "
+          . "  `uid`                   INT(10)          NOT NULL DEFAULT '0' COMMENT 'User ID', "
+          . "  `name`                  VARCHAR(40)      NOT NULL DEFAULT ''  COMMENT 'Query name', "
+          . "  `query`                 TEXT             NOT NULL             COMMENT 'Query array', "
+          . '  PRIMARY KEY (`qid`) , '
+          . '  INDEX (`uid`) '
+          . '  ) '
+          . 'ENGINE = MyISAM '
+          . 'CHARACTER SET = utf8 '
+          . "COMMENT = 'QBF Query store' ";
+      db_query($sq);
+      break;
+
+    case pgsql:
+    default:
+      drupal_set_message(t('Unsupported database backend for QBF module: @db',
+        array('@db' => $GLOBALS['db_type'])), 'error');
+      break;
+    }
+  }
+
+/**
+ * Implement hook_uninstall().
+ *
+ * - Drop all the tables maintained by the module
+ *   - qbf_queries
+ * - Remove nodes of all the types maintained by the module
+ *   - none
+ * - Remove module settings
+ *   - none
+ * - Do NOT remove module schema version from {system}
+ *
+ * @return void
+ */
+function qbf_uninstall()
+  {
+  switch ($GLOBALS['db_type'])
+    {
+    case 'mysql':
+    case 'mysqli':
+    case 'pgsql':
+      db_query("DROP TABLE {qbf_queries}");
+      break;
+
+    default:
+      drupal_set_message(t('Unsupported database backend for QBF module: @db',
+        array('@db' => $GLOBALS['db_type'])), 'error');
+      break;
+    }
+  }
+
+/**
+ * Implement hook_update_N().
+ *
+ * For now, just define a proper initial schema version.
+ *
+ * @return array
+ */
+function qbf_update_5000()
+  {
+  return array();
+  }