Make the tile ID column unsigned as intended.
authorTom Hughes <tom@compton.nu>
Tue, 18 Sep 2007 23:06:40 +0000 (23:06 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 18 Sep 2007 23:06:40 +0000 (23:06 +0000)
db/migrate/005_tile_tracepoints.rb
lib/migrate.rb

index d9d782df0ac954aea49abcada732051e6a6e2de9..246f9b7b41a1e37869a7192bc7fb96c8ddb9e9c3 100644 (file)
@@ -1,6 +1,6 @@
 class TileTracepoints < ActiveRecord::Migration
   def self.up
-    add_column "gps_points", "tile", :integer, :null => false, :options => "UNSIGNED"
+    add_column "gps_points", "tile", :integer, :null => false, :unsigned => true
     add_index "gps_points", ["tile"], :name => "points_tile_idx"
     remove_index "gps_points", :name => "points_idx"
 
index c31e3153876854243a7fd9e5d699635a917d58c7..1d32d175d77d0fb85055f8f60c19dff7cc86de2c 100644 (file)
@@ -17,6 +17,14 @@ module ActiveRecord
         return false if options[:options] =~ /AUTO_INCREMENT/i
         return old_options_include_default?(options)
       end
+
+      alias_method :old_add_column_options!, :add_column_options!
+
+      def add_column_options!(sql, options)
+        sql << " UNSIGNED" if options[:unsigned]
+        old_add_column_options!(sql, options)
+        sql << " #{options[:options]}"
+      end
     end
 
     class MysqlAdapter
@@ -40,7 +48,6 @@ module ActiveRecord
 
         change_column_sql = "ALTER TABLE #{table_name} CHANGE #{column_name} #{column_name} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}"
         add_column_options!(change_column_sql, options)
-        change_column_sql << " #{options[:options]}"
         execute(change_column_sql) 
       end