Convert Horde_Group to migrations.
authorJan Schneider <jan@horde.org>
Wed, 26 Jan 2011 20:56:01 +0000 (21:56 +0100)
committerJan Schneider <jan@horde.org>
Wed, 26 Jan 2011 20:56:01 +0000 (21:56 +0100)
framework/Group/migration/Horde_Group/1_horde_group_base_tables.php [new file with mode: 0644]
framework/Group/migration/Horde_Group/2_horde_group_upgrade_autoincrement.php [new file with mode: 0644]
framework/Group/package.xml
horde/scripts/sql/horde_groups.mysql.sql [deleted file]
horde/scripts/sql/horde_groups.oci8.sql [deleted file]
horde/scripts/sql/horde_groups.pgsql.sql [deleted file]
horde/scripts/sql/horde_groups.sql [deleted file]
horde/scripts/upgrades/2010-06-01_horde_groups_autoincrement.mysql.sql [deleted file]
horde/scripts/upgrades/2010-06-01_horde_groups_autoincrement.oci8.sql [deleted file]
horde/scripts/upgrades/2010-06-01_horde_groups_autoincrement.pgsql.sql [deleted file]

diff --git a/framework/Group/migration/Horde_Group/1_horde_group_base_tables.php b/framework/Group/migration/Horde_Group/1_horde_group_base_tables.php
new file mode 100644 (file)
index 0000000..cf76753
--- /dev/null
@@ -0,0 +1,29 @@
+<?php
+class HordeGroupBaseTables extends Horde_Db_Migration_Base
+{
+    public function up()
+    {
+        if (!in_array('horde_groups', $this->tables())) {
+            $t = $this->createTable('horde_groups', array('primaryKey' => array('group_uid')));
+            $t->column('group_uid', 'integer', array('null' => false, 'unsigned' => true));
+            $t->column('group_name', 'string', array('limit' => 255, 'null' => false));
+            $t->column('group_parents', 'string', array('limit' => 255, 'null' => false));
+            $t->column('group_email', 'string', array('limit' => 255));
+            $t->end();
+            $this->addIndex('horde_groups', array('group_name'), array('unique' => true));
+        }
+        if (!in_array('horde_groups_members', $this->tables())) {
+            $t = $this->createTable('horde_groups_members', array('primaryKey' => false));
+            $t->column('group_uid', 'integer', array('null' => false, 'unsigned' => true));
+            $t->column('user_uid', 'string', array('limit' => 255, 'null' => false));
+            $t->end();
+            $this->addIndex('horde_groups_members', array('group_uid'));
+            $this->addIndex('horde_groups_members', array('user_uid'));
+        }
+    }
+
+    public function down()
+    {
+        $this->dropTable('horde_groups');
+    }
+}
diff --git a/framework/Group/migration/Horde_Group/2_horde_group_upgrade_autoincrement.php b/framework/Group/migration/Horde_Group/2_horde_group_upgrade_autoincrement.php
new file mode 100644 (file)
index 0000000..97c04b0
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+class HordeGroupUpgradeAutoIncrement extends Horde_Db_Migration_Base
+{
+    /**
+     * Upgrade.
+     */
+    public function up()
+    {
+        $this->changeColumn('horde_groups', 'group_uid', 'integer', array('null' => false, 'unsigned' => true, 'autoincrement' => true));
+    }
+
+    /**
+     * Downgrade
+     */
+    public function down()
+    {
+        $this->changeColumn('horde_groups', 'group_uid', 'integer', array('null' => false, 'unsigned' => true));
+    }
+
+}
\ No newline at end of file
index 9827138..e0b96ca 100644 (file)
@@ -16,8 +16,8 @@
   <email>jan@horde.org</email>
   <active>yes</active>
  </lead>
- <date>2010-08-15</date>
- <time>15:32:50</time>
+ <date>2011-01-26</date>
+ <time>21:54:50</time>
  <version>
   <release>0.2.0</release>
   <api>0.2.0</api>
       <file name="Mock.php" role="php" />
       <file name="Sql.php" role="php" />
       <file name="SqlObject.php" role="php" />
-     </dir> <!-- //lib/Horde/Group -->
+     </dir> <!-- /lib/Horde/Group -->
      <file name="Group.php" role="php" />
-    </dir> <!-- //lib/Horde -->
-   </dir> <!-- //lib -->
+    </dir> <!-- /lib/Horde -->
+   </dir> <!-- /lib -->
+   <dir name="migration">
+    <dir name="Horde_Group">
+     <file name="1_horde_group_base_tables.php" role="data" />
+     <file name="2_horde_group_upgrade_autoincrement.php" role="data" />
+    </dir> <!-- /migration/Horde_Group -->
+   </dir> <!-- /migration -->
   </dir> <!-- / -->
  </contents>
  <dependencies>
    <install as="Horde/Group/Mock.php" name="lib/Horde/Group/Mock.php" />
    <install as="Horde/Group/Sql.php" name="lib/Horde/Group/Sql.php" />
    <install as="Horde/Group/SqlObject.php" name="lib/Horde/Group/SqlObject.php" />
+   <install as="migration/1_horde_group_base_tables.php" name="migration/Horde_Group/1_horde_group_base_tables.php" />
+   <install as="migration/2_horde_group_upgrade_autoincrement.php" name="migration/Horde_Group/2_horde_group_upgrade_autoincrement.php" />
   </filelist>
  </phprelease>
  <changelog>
@@ -181,7 +189,7 @@ Initial release as a PEAR package
     <release>beta</release>
     <api>beta</api>
    </stability>
-   <date>2010-08-15</date>
+   <date>2011-01-26</date>
    <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
    <notes>
 * Throw exceptions, not PEAR_Errors.
diff --git a/horde/scripts/sql/horde_groups.mysql.sql b/horde/scripts/sql/horde_groups.mysql.sql
deleted file mode 100644 (file)
index 868c0a7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-CREATE TABLE horde_groups (
-    group_uid INT(11) NOT NULL AUTO_INCREMENT,
-    group_name VARCHAR(255) NOT NULL,
-    group_parents VARCHAR(255) NOT NULL,
-    group_email VARCHAR(255),
-    PRIMARY KEY (group_uid),
-    UNIQUE KEY group_name (group_name)
-);
-
-CREATE TABLE horde_groups_members (
-    group_uid INT(11) NOT NULL,
-    user_uid VARCHAR(255) NOT NULL
-);
-
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid);
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid);
diff --git a/horde/scripts/sql/horde_groups.oci8.sql b/horde/scripts/sql/horde_groups.oci8.sql
deleted file mode 100644 (file)
index 93025e8..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-CREATE TABLE horde_groups (
-    group_uid NUMBER(16) NOT NULL,
-    group_name VARCHAR2(255) NOT NULL UNIQUE,
-    group_parents VARCHAR2(255) NOT NULL,
-    group_email VARCHAR2(255),
-    PRIMARY KEY (group_uid)
-);
-
-CREATE TABLE horde_groups_members (
-    group_uid NUMBER(16) NOT NULL,
-    user_uid VARCHAR2(255) NOT NULL
-);
-
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid);
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid);
-
-CREATE SEQUENCE horde_groups_uid_seq;
-CREATE TRIGGER horde_groups_uid_trigger
-BEFORE INSERT ON horde_groups
-FOR EACH ROW
-BEGIN
-    SELECT horde_groups_uid_seq.nextval INTO :new.group_uid FROM dual;
-END;
diff --git a/horde/scripts/sql/horde_groups.pgsql.sql b/horde/scripts/sql/horde_groups.pgsql.sql
deleted file mode 100644 (file)
index 3ea74fa..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-CREATE TABLE horde_groups (
-    group_uid SERIAL UNIQUE,
-    group_name VARCHAR(255) NOT NULL UNIQUE,
-    group_parents VARCHAR(255) NOT NULL,
-    group_email VARCHAR(255),
-    PRIMARY KEY (group_uid)
-);
-
-CREATE TABLE horde_groups_members (
-    group_uid INTEGER NOT NULL,
-    user_uid VARCHAR(255) NOT NULL
-);
-
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid);
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid);
diff --git a/horde/scripts/sql/horde_groups.sql b/horde/scripts/sql/horde_groups.sql
deleted file mode 100644 (file)
index e12b22e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-CREATE TABLE horde_groups (
-    group_uid INTEGER NOT NULL AUTO_INCREMENT,
-    group_name VARCHAR(255) NOT NULL,
-    group_parents VARCHAR(255) NOT NULL,
-    group_email VARCHAR(255),
-    PRIMARY KEY (group_uid)
-);
-
-CREATE TABLE horde_groups_members (
-    group_uid INTEGER NOT NULL,
-    user_uid VARCHAR(255) NOT NULL
-);
-CREATE INDEX group_uid_idx ON horde_groups_members (group_uid);
-CREATE INDEX user_uid_idx ON horde_groups_members (user_uid);
diff --git a/horde/scripts/upgrades/2010-06-01_horde_groups_autoincrement.mysql.sql b/horde/scripts/upgrades/2010-06-01_horde_groups_autoincrement.mysql.sql
deleted file mode 100644 (file)
index bbcfa91..0000000
+++ /dev/null
@@ -1 +0,0 @@
-ALTER TABLE horde_groups CHANGE COLUMN group_uid group_uid INT(11) NOT NULL AUTO_INCREMENT;
diff --git a/horde/scripts/upgrades/2010-06-01_horde_groups_autoincrement.oci8.sql b/horde/scripts/upgrades/2010-06-01_horde_groups_autoincrement.oci8.sql
deleted file mode 100644 (file)
index 00cd0b0..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-CREATE SEQUENCE horde_group_uid_seq;
-CREATE TRIGGER horde_group_uid_trigger
-BEFORE INSERT ON horde_groups
-FOR EACH ROW
-BEGIN
-SELECT horde_group_uid_seq.nextval INTO :new.group_uid FROM dual;
-END;
diff --git a/horde/scripts/upgrades/2010-06-01_horde_groups_autoincrement.pgsql.sql b/horde/scripts/upgrades/2010-06-01_horde_groups_autoincrement.pgsql.sql
deleted file mode 100644 (file)
index cd92611..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE SEQUENCE horde_group_uid_seq;
-ALTER TABLE horde_groups ALTER COLUMN group_uid SET DEFAULT NEXTVAL('horde_group_uid_seq');