Fix column types for ansel migration.
authorMichael J. Rubinsky <mrubinsk@horde.org>
Sat, 9 Oct 2010 19:48:12 +0000 (15:48 -0400)
committerMichael J. Rubinsky <mrubinsk@horde.org>
Sat, 9 Oct 2010 19:48:12 +0000 (15:48 -0400)
These were signed integers in fw_3, migrate them to unsigned integers except
the share_id since we specify the share_id that key images belong to via negative ids,
use bigint here.

ansel/migration/1_ansel_base_tables.php
ansel/migration/2_ansel_upgrade_autoincrement.php
ansel/migration/6_ansel_upgrade_unsignedints.php [new file with mode: 0644]

index a6e1f0b..482cc6c 100644 (file)
@@ -24,19 +24,19 @@ class AnselBaseTables extends Horde_Db_Migration_Base
         if (!in_array('ansel_images', $tableList)) {
             // Create: ansel_images
             $t = $this->createTable('ansel_images', array('primaryKey' => false));
-            $t->column('image_id', 'bigint', array('null' => false, 'autoincrement' => false));
-            $t->column('gallery_id', 'bigint', array('null' => false));
+            $t->column('image_id', 'integer', array('null' => false));
+            $t->column('gallery_id', 'integer', array('null' => false));
             $t->column('image_filename', 'string', array('limit' => 255, 'null' => false));
             $t->column('image_type', 'string', array('limit' => 100, 'null' => false));
             $t->column('image_caption', 'text');
-            $t->column('image_uploaded_date', 'bigint', array('null' => false));
-            $t->column('image_original_date', 'bigint', array('null' => false));
+            $t->column('image_uploaded_date', 'integer', array('null' => false));
+            $t->column('image_original_date', 'integer', array('null' => false));
             $t->column('image_sort', 'integer', array('null' => false));
             $t->column('image_faces', 'integer', array('null' => false, 'default' => 0));
             $t->column('image_latitude', 'string', array('limit' => 32));
             $t->column('image_longitude', 'string', array('limit' => 32));
             $t->column('image_location', 'string', array('limit' => 255));
-            $t->column('image_geotag_date', 'bigint');
+            $t->column('image_geotag_date', 'integer');
             $t->primaryKey(array('image_id'));
             $t->end();
 
@@ -50,7 +50,7 @@ class AnselBaseTables extends Horde_Db_Migration_Base
             // Create: ansel_image_attributes
             //$t = $this->createTable('ansel_image_attributes', array('primaryKey' => 'image_id, attr_name'));
             $t = $this->createTable('ansel_image_attributes', array('primaryKey' => false));
-            $t->column('image_id', 'bigint', array('null' => false));
+            $t->column('image_id', 'integer', array('null' => false));
             $t->column('attr_name', 'string', array('null' => false, 'limit' => 50));
             $t->column('attr_value', 'string', array('limit' => 255));
             $t->primaryKey(array('image_id', 'attr_name'));
@@ -61,9 +61,9 @@ class AnselBaseTables extends Horde_Db_Migration_Base
         if (!in_array('ansel_faces', $tableList)) {
             // Create: ansel_faces
             $t = $this->createTable('ansel_faces', array('primaryKey' => false));
-            $t->column('face_id', 'bigint', array('null' => false, 'autoincrement' => false));
-            $t->column('image_id', 'bigint', array('null' => false));
-            $t->column('gallery_id', 'bigint', array('null' => false));
+            $t->column('face_id', 'integer', array('null' => false));
+            $t->column('image_id', 'integer', array('null' => false));
+            $t->column('gallery_id', 'integer', array('null' => false));
             $t->column('face_name', 'string', array('limit' => 255));
             $t->column('face_x1', 'integer', array('null' => false));
             $t->column('face_y1', 'integer', array('null' => false));
@@ -79,7 +79,7 @@ class AnselBaseTables extends Horde_Db_Migration_Base
         if (!in_array('ansel_faces_index', $tableList)) {
             // Create: ansel_faces_index
             $t = $this->createTable('ansel_faces_index');
-            $t->column('face_id', 'bigint', array('null' => false));
+            $t->column('face_id', 'integer', array('null' => false));
             $t->column('index_position', 'integer', array('null' => false));
             $t->column('index_part', 'binary');
             $t->end();
@@ -94,7 +94,7 @@ class AnselBaseTables extends Horde_Db_Migration_Base
         if (!in_array('ansel_shares', $tableList)) {
             // Create: ansel_shares
             $t = $this->createTable('ansel_shares', array('primaryKey' => false));
-            $t->column('share_id', 'bigint', array('null' => false));
+            $t->column('share_id', 'integer', array('null' => false));
             $t->column('share_owner', 'string', array('limit' => 255, 'null' => false));
             $t->column('share_parents', 'string', array('limit' => 255));
             $t->column('perm_creator', 'integer', array('null' => false));
@@ -108,8 +108,8 @@ class AnselBaseTables extends Horde_Db_Migration_Base
             $t->column('attribute_default_prettythumb', 'text');
             $t->column('attribute_style', 'string', array('limit' => 255));
             $t->column('attribute_category', 'string', array('limit' => 255, 'null' => false, 'default' => ''));
-            $t->column('attribute_last_modified', 'bigint');
-            $t->column('attribute_date_created', 'bigint');
+            $t->column('attribute_last_modified', 'integer');
+            $t->column('attribute_date_created', 'integer');
             $t->column('attribute_images', 'integer', array('null' => false, 'default' => 0));
             $t->column('attribute_has_subgalleries', 'integer', array('null' => false, 'default' => 0));
             $t->column('attribute_slug', 'string', array('limit' => 255));
@@ -132,8 +132,8 @@ class AnselBaseTables extends Horde_Db_Migration_Base
         if (!in_array('ansel_shares_groups', $tableList)) {
             // Create: ansel_shares_groups
             $t = $this->createTable('ansel_shares_groups');
-            $t->column('share_id', 'bigint', array('null' => false));
-            $t->column('group_uid', 'bigint', array('null' => false));
+            $t->column('share_id', 'integer', array('null' => false));
+            $t->column('group_uid', 'integer', array('null' => false));
             $t->column('perm', 'integer', array('null' => false));
             $t->end();
 
@@ -145,8 +145,8 @@ class AnselBaseTables extends Horde_Db_Migration_Base
         if (!in_array('ansel_shares_users', $tableList)) {
             // Create: ansel_shares_users
             $t = $this->createTable('ansel_shares_users');
-            $t->column('share_id', 'bigint', array('null' => false));
-            $t->column('user_uid', 'bigint', array('null' => false));
+            $t->column('share_id', 'integer', array('null' => false));
+            $t->column('user_uid', 'integer', array('null' => false));
             $t->column('perm', 'integer', array('null' => false));
             $t->end();
 
@@ -158,7 +158,7 @@ class AnselBaseTables extends Horde_Db_Migration_Base
         if (!in_array('ansel_images_geolocation', $tableList)) {
             // Create: ansel_images_geolocation
             $t = $this->createTable('ansel_images_geolocation', array('primaryKey' => false));
-            $t->column('image_id', 'bigint', array('null' => false));
+            $t->column('image_id', 'integer', array('null' => false));
             $t->column('image_latitude', 'string', array('limit' => 32));
             $t->column('image_longitude', 'string', array('limit' => 32));
             $t->column('image_location', 'string', array('limit' => 255));
index cda1f3a..50a0a4a 100644 (file)
@@ -16,9 +16,9 @@ class AnselUpgradeAutoIncrement extends Horde_Db_Migration_Base
 {
     public function up()
     {
-        $this->changeColumn('ansel_images', 'image_id', 'bigint', array('null' => false, 'autoincrement' => true));
-        $this->changeColumn('ansel_faces', 'face_id', 'bigint', array('null' => false, 'autoincrement' => true));
-        $this->changeColumn('ansel_shares', 'share_id', 'bigint', array('null' => false, 'autoincrement' => true));
+        $this->changeColumn('ansel_images', 'image_id', 'integer', array('null' => false, 'autoincrement' => true));
+        $this->changeColumn('ansel_faces', 'face_id', 'integer', array('null' => false, 'autoincrement' => true));
+        $this->changeColumn('ansel_shares', 'share_id', 'integer', array('null' => false, 'autoincrement' => true));
         $this->changeColumn('ansel_tags', 'tag_id', 'integer', array('null' => false, 'autoincrement' => true));
     }
 
@@ -26,9 +26,9 @@ class AnselUpgradeAutoIncrement extends Horde_Db_Migration_Base
     {
         $tableList = $this->tables();
 
-        $this->changeColumn('ansel_images', 'image_id', 'bigint', array('null' => false, 'autoincrement' => false));
-        $this->changeColumn('ansel_faces', 'face_id', 'bigint', array('null' => false, 'autoincrement' => false));
-        $this->changeColumn('ansel_shares', 'share_id', 'bigint', array('null' => false, 'autoincrement' => false));
+        $this->changeColumn('ansel_images', 'image_id', 'integer', array('null' => false, 'autoincrement' => false));
+        $this->changeColumn('ansel_faces', 'face_id', 'integer', array('null' => false, 'autoincrement' => false));
+        $this->changeColumn('ansel_shares', 'share_id', 'integer', array('null' => false, 'autoincrement' => false));
 
         if (in_array('ansel_tags', $tableList)) {
             $this->changeColumn('ansel_tags', 'tag_id', 'integer', array('null' => false, 'autoincrement' => false));
diff --git a/ansel/migration/6_ansel_upgrade_unsignedints.php b/ansel/migration/6_ansel_upgrade_unsignedints.php
new file mode 100644 (file)
index 0000000..08ea1ba
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Create Ansel base tables (as of Ansel 1.1.1).
+ *
+ * Copyright 2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author   Michael J. Rubinsky <mrubinsk@horde.org>
+ * @category Horde
+ * @license  http://www.fsf.org/copyleft/gpl.html GPL
+ * @package  Ansel
+ */
+class AnselUpgradeUnsignedints extends Horde_Db_Migration_Base
+{
+    /**
+     * Upgrade.
+     */
+    public function up()
+    {
+        $this->changeColumn('ansel_images', 'image_id', 'integer', array('null' => false, 'autoincrement' => true, 'unsigned' => true));
+        $this->changeColumn('ansel_images', 'gallery_id', 'bigint', array('null' => false));
+        $this->changeColumn('ansel_images', 'image_uploaded_date', 'integer', array('null' => false, 'unsigned' => true));
+        $this->changeColumn('ansel_images', 'image_original_date', 'integer', array('null' => false, 'unsigned' => true));
+        $this->changeColumn('ansel_images', 'image_sort', 'integer', array('null' => false, 'unsigned' => true));
+        $this->changeColumn('ansel_images', 'image_faces', 'integer', array('null' => false, 'default' => 0, 'unsigned' => true));
+        $this->changeColumn('ansel_images', 'image_geotag_date', 'integer', array('unsigned' => true));
+        
+        $this->changeColumn('ansel_image_attributes', 'image_id', 'integer', array('null' => false, 'unsigned' => true));
+
+        $this->changeColumn('ansel_faces', 'face_id', 'integer', array('null' => false, 'autoincrement' => true, 'unsigned' => true));
+        $this->changeColumn('ansel_faces', 'image_id', 'integer', array('null' => false, 'unsigned' => true));
+        $this->changeColumn('ansel_faces', 'gallery_id', 'bigint', array('null' => false));
+
+        $this->changeColumn('ansel_faces_index', 'face_id', 'integer', array('null' => false, 'unsigned' => true));
+        $this->changeColumn('ansel_faces_index', 'index_position', 'integer', array('null' => false, 'unsigned' => true));
+
+        $this->changeColumn('ansel_shares', 'share_id', 'bigint', array('null' => false, 'autoincrement' => true));
+        $this->changeColumn('ansel_shares', 'attribute_last_modified', 'integer', array('unsigned' => true));
+        $this->changeColumn('ansel_shares', 'attribute_date_created', 'integer', array('unsigned' => true));
+        $this->changeColumn('ansel_shares', 'attribute_images', 'integer', array('null' => false, 'default' => 0, 'unsigned' => true));
+        $this->changeColumn('ansel_shares', 'attribute_faces', 'integer', array('null' => false, 'default' => 0, 'unsigned' => true));
+       
+        $this->changeColumn('ansel_shares_groups', 'group_uid', 'integer', array('null' => false, 'unsigned' => true));
+       
+        $this->changeColumn('ansel_shares_users', 'user_uid', 'integer', array('null' => false, 'unsigned' => true));
+       
+        $this->changeColumn('ansel_images_geolocation', 'image_id', 'integer', array('null' => false, 'unsigned' => true));
+    }
+
+    /**
+     * Downgrade
+     *
+     */
+    public function down()
+    {
+        // No need.
+    }
+
+}