--- /dev/null
+<?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');
+ }
+}
--- /dev/null
+<?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
<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>
<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.
+++ /dev/null
-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);
+++ /dev/null
-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;
+++ /dev/null
-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);
+++ /dev/null
-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);
+++ /dev/null
-ALTER TABLE horde_groups CHANGE COLUMN group_uid group_uid INT(11) NOT NULL AUTO_INCREMENT;
+++ /dev/null
-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;
+++ /dev/null
-CREATE SEQUENCE horde_group_uid_seq;
-ALTER TABLE horde_groups ALTER COLUMN group_uid SET DEFAULT NEXTVAL('horde_group_uid_seq');