Install migration scripts using data role and full package path.
--- /dev/null
+<?php
+class RampageBaseTables extends Horde_Db_Migration_Base
+{
+ public function up()
+ {
+ // rampage_types
+ $t = $this->createTable('rampage_types', array('primaryKey' => 'type_id'));
+ $t->column('type_name', 'string', array('limit' => 255, 'null' => false));
+ $t->end();
+
+ $this->addIndex('rampage_types', array('type_name'), array('name' => 'rampage_objects_type_name', 'unique' => true));
+
+
+ // rampage_objects
+ $t = $this->createTable('rampage_objects', array('primaryKey' => 'object_id'));
+ $t->column('object_name', 'string', array('limit' => 255, 'null' => false));
+ $t->column('type_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->end();
+
+ $this->addIndex('rampage_objects', array('type_id', 'object_name'), array('name' => 'rampage_objects_type_object_name', 'unique' => true));
+
+
+ // rampage_users
+ $t = $this->createTable('rampage_users', array('primaryKey' => 'user_id'));
+ $t->column('user_name', 'string', array('limit' => 255, 'null' => false));
+ $t->end();
+
+ $this->addIndex('rampage_users', array('user_name'), array('name' => 'rampage_users_user_name', 'unique' => true));
+ }
+
+ public function down()
+ {
+ $this->dropTable('rampage_types');
+ $this->dropTable('rampage_objects');
+ $this->dropTable('rampage_users');
+ }
+}
--- /dev/null
+<?php
+class RampageTagTables extends Horde_Db_Migration_Base
+{
+ public function up()
+ {
+ // rampage_tags
+ $t = $this->createTable('rampage_tags', array('primaryKey' => 'tag_id'));
+ $t->column('tag_name', 'string', array('limit' => 255, 'null' => false));
+ $t->end();
+
+ $this->addIndex('rampage_tags', array('tag_name'), array('name' => 'rampage_tags_tag_name', 'unique' => true));
+
+
+ // rampage_tagged
+ $t = $this->createTable('rampage_tagged', array('primaryKey' => array('user_id', 'object_id', 'tag_id')));
+ $t->column('user_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('object_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('tag_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('created', 'datetime');
+ $t->end();
+
+ $this->addIndex('rampage_tagged', array('object_id'), array('name' => 'rampage_tagged_object_id'));
+ $this->addIndex('rampage_tagged', array('tag_id'), array('name' => 'rampage_tagged_tag_id'));
+ $this->addIndex('rampage_tagged', array('created'), array('name' => 'rampage_tagged_created'));
+
+
+ // rampage_tag_stats
+ $t = $this->createTable('rampage_tag_stats', array('primaryKey' => 'tag_id'));
+ $t->column('count', 'integer', array('unsigned' => true));
+ $t->end();
+
+
+ // rampage_user_tag_stats
+ $t = $this->createTable('rampage_user_tag_stats', array('primaryKey' => array('user_id', 'tag_id')));
+ $t->column('user_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('tag_id', 'integer', array('null' => false, 'unsigned' => true));
+ $t->column('count', 'integer', array('unsigned' => true));
+ $t->end();
+
+ $this->addIndex('rampage_user_tag_stats', array('tag_id'), array('name' => 'rampage_user_tag_stats_tag_id'));
+ }
+
+ public function down()
+ {
+ $this->dropTable('rampage_tags');
+ $this->dropTable('rampage_tagged');
+ $this->dropTable('rampage_tag_stats');
+ $this->dropTable('rampage_user_tag_stats');
+ }
+}
+++ /dev/null
-<?php
-class RampageBaseTables extends Horde_Db_Migration_Base
-{
- public function up()
- {
- // rampage_types
- $t = $this->createTable('rampage_types', array('primaryKey' => 'type_id'));
- $t->column('type_name', 'string', array('limit' => 255, 'null' => false));
- $t->end();
-
- $this->addIndex('rampage_types', array('type_name'), array('name' => 'rampage_objects_type_name', 'unique' => true));
-
-
- // rampage_objects
- $t = $this->createTable('rampage_objects', array('primaryKey' => 'object_id'));
- $t->column('object_name', 'string', array('limit' => 255, 'null' => false));
- $t->column('type_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->end();
-
- $this->addIndex('rampage_objects', array('type_id', 'object_name'), array('name' => 'rampage_objects_type_object_name', 'unique' => true));
-
-
- // rampage_users
- $t = $this->createTable('rampage_users', array('primaryKey' => 'user_id'));
- $t->column('user_name', 'string', array('limit' => 255, 'null' => false));
- $t->end();
-
- $this->addIndex('rampage_users', array('user_name'), array('name' => 'rampage_users_user_name', 'unique' => true));
- }
-
- public function down()
- {
- $this->dropTable('rampage_types');
- $this->dropTable('rampage_objects');
- $this->dropTable('rampage_users');
- }
-}
+++ /dev/null
-<?php
-class RampageTagTables extends Horde_Db_Migration_Base
-{
- public function up()
- {
- // rampage_tags
- $t = $this->createTable('rampage_tags', array('primaryKey' => 'tag_id'));
- $t->column('tag_name', 'string', array('limit' => 255, 'null' => false));
- $t->end();
-
- $this->addIndex('rampage_tags', array('tag_name'), array('name' => 'rampage_tags_tag_name', 'unique' => true));
-
-
- // rampage_tagged
- $t = $this->createTable('rampage_tagged', array('primaryKey' => array('user_id', 'object_id', 'tag_id')));
- $t->column('user_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('object_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('tag_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('created', 'datetime');
- $t->end();
-
- $this->addIndex('rampage_tagged', array('object_id'), array('name' => 'rampage_tagged_object_id'));
- $this->addIndex('rampage_tagged', array('tag_id'), array('name' => 'rampage_tagged_tag_id'));
- $this->addIndex('rampage_tagged', array('created'), array('name' => 'rampage_tagged_created'));
-
-
- // rampage_tag_stats
- $t = $this->createTable('rampage_tag_stats', array('primaryKey' => 'tag_id'));
- $t->column('count', 'integer', array('unsigned' => true));
- $t->end();
-
-
- // rampage_user_tag_stats
- $t = $this->createTable('rampage_user_tag_stats', array('primaryKey' => array('user_id', 'tag_id')));
- $t->column('user_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('tag_id', 'integer', array('null' => false, 'unsigned' => true));
- $t->column('count', 'integer', array('unsigned' => true));
- $t->end();
-
- $this->addIndex('rampage_user_tag_stats', array('tag_id'), array('name' => 'rampage_user_tag_stats_tag_id'));
- }
-
- public function down()
- {
- $this->dropTable('rampage_tags');
- $this->dropTable('rampage_tagged');
- $this->dropTable('rampage_tag_stats');
- $this->dropTable('rampage_user_tag_stats');
- }
-}
--- /dev/null
+<?php
+class HordeAlarmsTable extends Horde_Db_Migration_Base
+{
+ public function up()
+ {
+ $t = $this->createTable('horde_alarms');
+ $t->column('alarm_id', 'string', array('limit' => 255, 'null' => false));
+ $t->column('alarm_uid', 'string', array('limit' => 255));
+ $t->column('alarm_start', 'datetime', array('null' => false));
+ $t->column('alarm_end', 'datetime');
+ $t->column('alarm_methods', 'string', array('limit' => 255));
+ $t->column('alarm_params', 'text');
+ $t->column('alarm_title', 'string', array('limit' => 255, 'null' => false));
+ $t->column('alarm_text', 'text');
+ $t->column('alarm_snooze', 'datetime');
+ $t->column('alarm_dismissed', 'integer', array('limit' => 1, 'null' => false, 'default' => 0));
+ $t->column('alarm_internal', 'text');
+ $t->end();
+
+ $this->addIndex('horde_alarms', array('alarm_id'));
+ $this->addIndex('horde_alarms', array('alarm_uid'));
+ $this->addIndex('horde_alarms', array('alarm_start'));
+ $this->addIndex('horde_alarms', array('alarm_end'));
+ $this->addIndex('horde_alarms', array('alarm_snooze'));
+ $this->addIndex('horde_alarms', array('alarm_dismissed'));
+ }
+
+ public function down()
+ {
+ $this->dropTable('horde_alarms');
+ }
+}
+++ /dev/null
-<?php
-class HordeAlarmsTable extends Horde_Db_Migration_Base
-{
- public function up()
- {
- $t = $this->createTable('horde_alarms');
- $t->column('alarm_id', 'string', array('limit' => 255, 'null' => false));
- $t->column('alarm_uid', 'string', array('limit' => 255));
- $t->column('alarm_start', 'datetime', array('null' => false));
- $t->column('alarm_end', 'datetime');
- $t->column('alarm_methods', 'string', array('limit' => 255));
- $t->column('alarm_params', 'text');
- $t->column('alarm_title', 'string', array('limit' => 255, 'null' => false));
- $t->column('alarm_text', 'text');
- $t->column('alarm_snooze', 'datetime');
- $t->column('alarm_dismissed', 'integer', array('limit' => 1, 'null' => false, 'default' => 0));
- $t->column('alarm_internal', 'text');
- $t->end();
-
- $this->addIndex('horde_alarms', array('alarm_id'));
- $this->addIndex('horde_alarms', array('alarm_uid'));
- $this->addIndex('horde_alarms', array('alarm_start'));
- $this->addIndex('horde_alarms', array('alarm_end'));
- $this->addIndex('horde_alarms', array('alarm_snooze'));
- $this->addIndex('horde_alarms', array('alarm_dismissed'));
- }
-
- public function down()
- {
- $this->dropTable('horde_alarms');
- }
-}
<email>jan@horde.org</email>
<active>yes</active>
</lead>
- <date>2010-05-07</date>
- <time>17:43:45</time>
+ <date>2010-05-17</date>
+ <time>13:58:59</time>
<version>
<release>0.2.0</release>
<api>0.2.0</api>
<dir name="Horde">
<dir name="Alarm">
<dir name="Handler">
+ <file name="Desktop.php" role="php" />
<file name="Mail.php" role="php" />
<file name="Notify.php" role="php" />
</dir> <!-- /lib/Horde/Alarm/Handler -->
<file name="Alarm.php" role="php" />
</dir> <!-- /lib/Horde -->
</dir> <!-- /lib -->
- <dir name="migrations">
- <file name="1_horde_alarms_table.php" role="php" />
- </dir> <!-- /migrations -->
+ <dir name="migration">
+ <dir name="Horde">
+ <dir name="Alarm">
+ <file name="1_horde_alarms_table.php" role="data" />
+ </dir> <!-- /migration/Horde/Alarm -->
+ </dir> <!-- /migration/Horde -->
+ </dir> <!-- /migration -->
<dir name="test">
<dir name="Horde">
<dir name="Alarm">
<install as="Horde/Alarm/Null.php" name="lib/Horde/Alarm/Null.php" />
<install as="Horde/Alarm/Object.php" name="lib/Horde/Alarm/Object.php" />
<install as="Horde/Alarm/Sql.php" name="lib/Horde/Alarm/Sql.php" />
+ <install as="Horde/Alarm/Handler/Desktop.php" name="lib/Horde/Alarm/Handler/Desktop.php" />
<install as="Horde/Alarm/Handler/Mail.php" name="lib/Horde/Alarm/Handler/Mail.php" />
<install as="Horde/Alarm/Handler/Notify.php" name="lib/Horde/Alarm/Handler/Notify.php" />
+ <install as="Horde/Alarm/migration/1_horde_alarms_table.php" name="migration/Horde/Alarm/1_horde_alarms_table.php" />
<install as="Horde/Alarm/AllTests.php" name="test/Horde/Alarm/AllTests.php" />
<install as="Horde/Alarm/conf.php.dist" name="test/Horde/Alarm/conf.php.dist" />
<install as="Horde/Alarm/HandlerTest.php" name="test/Horde/Alarm/HandlerTest.php" />
<release>beta</release>
<api>beta</api>
</stability>
- <date>2010-05-07</date>
+ <date>2010-05-17</date>
<license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
<notes>
* Initial Horde 4 package.
'include' => '*',
'dir_roles' =>
array(
- 'lib' => 'php',
- 'doc' => 'doc',
- 'example' => 'doc',
- 'script' => 'script',
- 'test' => 'test',
+ 'lib' => 'php',
+ 'doc' => 'doc',
+ 'example' => 'doc',
+ 'script' => 'script',
+ 'test' => 'test',
+ 'migration' => 'data',
),
)
);
$file['attribs']['name'], $components[1]
);
break;
+ case 'migration':
+ $components = explode('/', $components[1]);
+ array_splice($components, count($components) - 1, 0, 'migration');
+ $package->addInstallAs(
+ $file['attribs']['name'], implode('/', $components)
+ );
+ break;
case 'script':
$filename = basename($file['attribs']['name']);
if (substr($filename, strlen($filename) - 4)) {
}
// Run
-$dir = $GLOBALS['registry']->get('fileroot', $app) . '/migrations/';
+$dir = $GLOBALS['registry']->get('fileroot', $app) . '/migration/';
$logger = new Horde_Log_Logger(new Horde_Log_Handler_Stream(STDOUT));
$migrator = new Horde_Db_Migration_Migrator($db, $logger, array('migrationsPath' => $dir, 'schemaTableName' => $app . '_schema_info'));
try {