--- /dev/null
+<?php
+class HordeLockBaseTables extends Horde_Db_Migration_Base
+{
+ public function up()
+ {
+ if (!in_array('horde_locks', $this->tables())) {
+ $t = $this->createTable('horde_locks', array('primaryKey' => array('lock_id')));
+ $t->column('lock_id', 'string', array('limit' => 36, 'null' => false));
+ $t->column('lock_owner', 'string', array('limit' => 32, 'null' => false));
+ $t->column('lock_scope', 'string', array('limit' => 32, 'null' => false));
+ $t->column('lock_principal', 'string', array('limit' => 255, 'null' => false));
+ $t->column('lock_origin_timestamp', 'bigint', array('null' => false));
+ $t->column('lock_update_timestamp', 'bigint', array('null' => false));
+ $t->column('lock_expiry_timestamp', 'bigint', array('null' => false));
+ $t->column('lock_type', 'smallint', array('null' => false, 'unsigned' => true));
+ $t->end();
+ }
+ }
+
+ public function down()
+ {
+ $this->dropTable('horde_locks');
+ }
+}
--- /dev/null
+<?php
+class HordeLockUpgradeColumnTypes extends Horde_Db_Migration_Base
+{
+ public function up()
+ {
+ $this->changeColumn('horde_locks', 'lock_type', 'tinyint', array('null' => false));
+ }
+
+ public function down()
+ {
+ $this->changeColumn('horde_locks', 'lock_type', 'smallint', array('null' => false, 'unsigned' => true));
+ }
+}
+++ /dev/null
-CREATE TABLE horde_locks (
- lock_id VARCHAR(36) NOT NULL,
- lock_owner VARCHAR(32) NOT NULL,
- lock_scope VARCHAR(32) NOT NULL,
- lock_principal VARCHAR(255) NOT NULL,
- lock_origin_timestamp BIGINT NOT NULL,
- lock_update_timestamp BIGINT NOT NULL,
- lock_expiry_timestamp BIGINT NOT NULL,
- lock_type SMALLINT UNSIGNED NOT NULL,
-
- PRIMARY KEY (lock_id)
-);
+++ /dev/null
-DROP TABLE horde_locks;
-
-CREATE TABLE horde_locks (
- lock_id VARCHAR(32) NOT NULL,
- lock_owner VARCHAR(32) NOT NULL,
- lock_scope VARCHAR(32) NOT NULL,
- lock_principal VARCHAR(255) NOT NULL,
- lock_origin_timestamp BIGINT NOT NULL,
- lock_update_timestamp BIGINT NOT NULL,
- lock_expiry_timestamp BIGINT NOT NULL,
- lock_type TINYINT NOT NULL,
-
- PRIMARY KEY (lock_id)
-);
+++ /dev/null
--- Allow lock IDs to be UUIDs:
-ALTER TABLE horde_locks CHANGE lock_id lock_id VARCHAR(36);