Convert Horde_SyncML to migrations.
authorJan Schneider <jan@horde.org>
Fri, 28 Jan 2011 17:58:35 +0000 (18:58 +0100)
committerJan Schneider <jan@horde.org>
Fri, 28 Jan 2011 18:07:06 +0000 (19:07 +0100)
framework/SyncML/migration/Horde/SyncML/1_horde_syncml_base_tables.php [new file with mode: 0644]
horde/scripts/sql/horde_syncml.sql [deleted file]
horde/scripts/upgrades/2008-04-04_horde_syncml_map_split_indexes.pgsql.sql [deleted file]
horde/scripts/upgrades/2008-04-04_horde_syncml_map_split_indexes.sql [deleted file]
horde/scripts/upgrades/2008-04-09_horde_syncml_map.php [deleted file]
horde/scripts/upgrades/2008-04-09_horde_syncml_map.sql [deleted file]

diff --git a/framework/SyncML/migration/Horde/SyncML/1_horde_syncml_base_tables.php b/framework/SyncML/migration/Horde/SyncML/1_horde_syncml_base_tables.php
new file mode 100644 (file)
index 0000000..baa767b
--- /dev/null
@@ -0,0 +1,40 @@
+<?php
+class HordeSyncmlBaseTables extends Horde_Db_Migration_Base
+{
+    public function up()
+    {
+        if (!in_array('horde_syncml_map', $this->tables())) {
+            $t = $this->createTable('horde_syncml_map', array('primaryKey' => false));
+            $t->column('syncml_syncpartner', 'string', array('limit' => 255, 'null' => false));
+            $t->column('syncml_db', 'string', array('limit' => 255, 'null' => false));
+            $t->column('syncml_uid', 'string', array('limit' => 255, 'null' => false));
+            $t->column('syncml_cuid', 'string', array('limit' => 255));
+            $t->column('syncml_suid', 'string', array('limit' => 255));
+            $t->column('syncml_timestamp', 'integer');
+            $t->end();
+            $this->addIndex('horde_syncml_map', array('syncml_syncpartner'));
+            $this->addIndex('horde_syncml_map', array('syncml_db'));
+            $this->addIndex('horde_syncml_map', array('syncml_uid'));
+            $this->addIndex('horde_syncml_map', array('syncml_cuid'));
+            $this->addIndex('horde_syncml_map', array('syncml_suid'));
+        }
+        if (!in_array('horde_syncml_anchors', $this->tables())) {
+            $t = $this->createTable('horde_syncml_anchors', array('primaryKey' => false));
+            $t->column('syncml_syncpartner', 'string', array('limit' => 255, 'null' => false));
+            $t->column('syncml_db', 'string', array('limit' => 255, 'null' => false));
+            $t->column('syncml_uid', 'string', array('limit' => 255, 'null' => false));
+            $t->column('syncml_clientanchor', 'string', array('limit' => 255));
+            $t->column('syncml_serveranchor', 'string', array('limit' => 255));
+            $t->end();
+            $this->addIndex('horde_syncml_anchors', array('syncml_syncpartner'));
+            $this->addIndex('horde_syncml_anchors', array('syncml_db'));
+            $this->addIndex('horde_syncml_anchors', array('syncml_uid'));
+        }
+    }
+
+    public function down()
+    {
+        $this->dropTable('horde_syncml_anchors');
+        $this->dropTable('horde_syncml_map');
+    }
+}
diff --git a/horde/scripts/sql/horde_syncml.sql b/horde/scripts/sql/horde_syncml.sql
deleted file mode 100644 (file)
index c1ce7d0..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-CREATE TABLE horde_syncml_map (
-    syncml_syncpartner VARCHAR(255) NOT NULL,
-    syncml_db          VARCHAR(255) NOT NULL,
-    syncml_uid         VARCHAR(255) NOT NULL,
-    syncml_cuid        VARCHAR(255),
-    syncml_suid        VARCHAR(255),
-    syncml_timestamp   INTEGER
-);
-
-CREATE INDEX syncml_syncpartner_idx ON horde_syncml_map (syncml_syncpartner);
-CREATE INDEX syncml_db_idx ON horde_syncml_map (syncml_db);
-CREATE INDEX syncml_uid_idx ON horde_syncml_map (syncml_uid);
-CREATE INDEX syncml_cuid_idx ON horde_syncml_map (syncml_cuid);
-CREATE INDEX syncml_suid_idx ON horde_syncml_map (syncml_suid);
-
-CREATE TABLE horde_syncml_anchors(
-    syncml_syncpartner  VARCHAR(255) NOT NULL,
-    syncml_db           VARCHAR(255) NOT NULL,
-    syncml_uid          VARCHAR(255) NOT NULL,
-    syncml_clientanchor VARCHAR(255),
-    syncml_serveranchor VARCHAR(255)
-);
-
-CREATE INDEX syncml_anchors_syncpartner_idx ON horde_syncml_anchors (syncml_syncpartner);
-CREATE INDEX syncml_anchors_db_idx ON horde_syncml_anchors (syncml_db);
-CREATE INDEX syncml_anchors_uid_idx ON horde_syncml_anchors (syncml_uid);
-
--- delete old map entries from datatree
-DELETE FROM horde_datatree WHERE group_uid = 'syncml';
diff --git a/horde/scripts/upgrades/2008-04-04_horde_syncml_map_split_indexes.pgsql.sql b/horde/scripts/upgrades/2008-04-04_horde_syncml_map_split_indexes.pgsql.sql
deleted file mode 100644 (file)
index 5d93fa3..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-DROP INDEX syncml_cuid_idx;
-DROP INDEX syncml_suid_idx;
-
-ALTER TABLE horde_syncml_map RENAME syncml_syncpartner TO syncml_syncpartner_copy;
-ALTER TABLE horde_syncml_map ADD COLUMN syncml_syncpartner VARCHAR(255);
-ALTER TABLE horde_syncml_map ALTER syncml_syncpartner SET NOT NULL;
-UPDATE horde_syncml_map SET syncml_syncpartner = syncml_syncpartner_copy;
-ALTER TABLE horde_syncml_map DROP COLUMN syncml_syncpartner_copy;
-
-ALTER TABLE horde_syncml_map RENAME syncml_db TO syncml_db_copy;
-ALTER TABLE horde_syncml_map ADD COLUMN syncml_db VARCHAR(255);
-ALTER TABLE horde_syncml_map ALTER syncml_db SET NOT NULL;
-UPDATE horde_syncml_map SET syncml_db = syncml_db_copy;
-ALTER TABLE horde_syncml_map DROP COLUMN syncml_db_copy;
-
-ALTER TABLE horde_syncml_map RENAME syncml_uid TO syncml_uid_copy;
-ALTER TABLE horde_syncml_map ADD COLUMN syncml_uid VARCHAR(255);
-ALTER TABLE horde_syncml_map ALTER syncml_uid SET NOT NULL;
-UPDATE horde_syncml_map SET syncml_uid = syncml_uid_copy;
-ALTER TABLE horde_syncml_map DROP COLUMN syncml_uid_copy;
-
-ALTER TABLE horde_syncml_map RENAME syncml_cuid TO syncml_cuid_copy;
-ALTER TABLE horde_syncml_map ADD COLUMN syncml_cuid VARCHAR(255);
-UPDATE horde_syncml_map SET syncml_cuid = syncml_cuid_copy;
-ALTER TABLE horde_syncml_map DROP COLUMN syncml_cuid_copy;
-
-ALTER TABLE horde_syncml_map RENAME syncml_suid TO syncml_suid_copy;
-ALTER TABLE horde_syncml_map ADD COLUMN syncml_suid VARCHAR(255);
-UPDATE horde_syncml_map SET syncml_suid = syncml_suid_copy;
-ALTER TABLE horde_syncml_map DROP COLUMN syncml_suid_copy;
-
-CREATE INDEX syncml_syncpartner_idx ON horde_syncml_map (syncml_syncpartner);
-CREATE INDEX syncml_db_idx ON horde_syncml_map (syncml_db);
-CREATE INDEX syncml_uid_idx ON horde_syncml_map (syncml_uid);
-CREATE INDEX syncml_cuid_idx ON horde_syncml_map (syncml_cuid);
-CREATE INDEX syncml_suid_idx ON horde_syncml_map (syncml_suid);
diff --git a/horde/scripts/upgrades/2008-04-04_horde_syncml_map_split_indexes.sql b/horde/scripts/upgrades/2008-04-04_horde_syncml_map_split_indexes.sql
deleted file mode 100644 (file)
index b3297ec..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-ALTER TABLE horde_syncml_map DROP INDEX syncml_cuid_idx;
-ALTER TABLE horde_syncml_map DROP INDEX syncml_suid_idx;
-
-ALTER TABLE horde_syncml_map CHANGE COLUMN syncml_syncpartner syncml_syncpartner VARCHAR(255) NOT NULL;
-ALTER TABLE horde_syncml_map CHANGE COLUMN syncml_db syncml_db VARCHAR(255) NOT NULL;
-ALTER TABLE horde_syncml_map CHANGE COLUMN syncml_uid syncml_uid VARCHAR(255) NOT NULL;
-ALTER TABLE horde_syncml_map CHANGE COLUMN syncml_cuid syncml_cuid VARCHAR(255);
-ALTER TABLE horde_syncml_map CHANGE COLUMN syncml_suid syncml_suid VARCHAR(255);
-
-CREATE INDEX syncml_syncpartner_idx ON horde_syncml_map (syncml_syncpartner);
-CREATE INDEX syncml_db_idx ON horde_syncml_map (syncml_db);
-CREATE INDEX syncml_uid_idx ON horde_syncml_map (syncml_uid);
-CREATE INDEX syncml_cuid_idx ON horde_syncml_map (syncml_cuid);
-CREATE INDEX syncml_suid_idx ON horde_syncml_map (syncml_suid);
diff --git a/horde/scripts/upgrades/2008-04-09_horde_syncml_map.php b/horde/scripts/upgrades/2008-04-09_horde_syncml_map.php
deleted file mode 100755 (executable)
index d4779a0..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env php
-<?php
-/**
- * This is a script to migrate SyncML anchor information out of the datatree
- * tables and into its own database table.
- */
-
-require_once dirname(__FILE__) . '/../../lib/Application.php';
-Horde_Registry::appInit('horde', array('cli' => true));
-
-require_once 'Horde/DataTree.php';
-$datatree = DataTree::factory('sql',
-                              array_merge(
-                                  Horde::getDriverConfig('datatree', 'sql'),
-                                  array('group' => 'horde.syncml')));
-$db = &$datatree->_db;
-$stmt = $db->prepare('INSERT INTO horde_syncml_anchors (syncml_syncpartner, syncml_db, syncml_uid, syncml_clientanchor, syncml_serveranchor) VALUES (?, ?, ?, ?, ?)');
-
-$cli->writeln('Processing all users:');
-$users = $datatree->getById(DATATREE_FORMAT_FLAT, DATATREE_ROOT, false,
-                            DATATREE_ROOT, 1);
-if (is_a($users, 'PEAR_Error')) {
-    $cli->fatal($users->toString());
-}
-foreach ($users as $user_id => $user) {
-    if ($user_id == DATATREE_ROOT) {
-        continue;
-    }
-    $cli->writeln($user);
-    $devices = $datatree->getById(DATATREE_FORMAT_FLAT, $user_id, false,
-                                  DATATREE_ROOT, 1);
-    foreach ($devices as $device_id => $device) {
-        if ($device_id == $user_id) {
-            continue;
-        }
-        $device = $datatree->getShortName($device);
-        echo '  device ' . $device . ':';
-        $databases = $datatree->getById(DATATREE_FORMAT_FLAT, $device_id,
-                                        false, DATATREE_ROOT, 1);
-        foreach ($databases as $database_id => $database) {
-            if ($database_id == $device_id) {
-                continue;
-            }
-            $database = $datatree->getShortName($database);
-            echo ' ' . $database;
-            $data = $datatree->getData($database_id);
-            $result = $db->execute($stmt, array($device, $database, $user,
-                                                (string)$data['ClientAnchor'],
-                                                (string)$data['ServerAnchor']));
-            if (is_a($result, 'PEAR_Error')) {
-                $cli->fatal($result->toString());
-            }
-        }
-        $cli->writeln();
-    }
-
-    $datatree->remove($user, true);
-}
diff --git a/horde/scripts/upgrades/2008-04-09_horde_syncml_map.sql b/horde/scripts/upgrades/2008-04-09_horde_syncml_map.sql
deleted file mode 100644 (file)
index 06b186e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-CREATE TABLE horde_syncml_anchors(
-    syncml_syncpartner  VARCHAR(255),
-    syncml_db           VARCHAR(255),
-    syncml_uid          VARCHAR(255),
-    syncml_clientanchor VARCHAR(255),
-    syncml_serveranchor VARCHAR(255)
-);
-
-CREATE INDEX syncml_anchors_syncpartner_idx ON horde_syncml_anchors (syncml_syncpartner);
-CREATE INDEX syncml_anchors_db_idx ON horde_syncml_anchors (syncml_db);
-CREATE INDEX syncml_anchors_uid_idx ON horde_syncml_anchors (syncml_uid);