From 9961b0bd20df1a7b995ca480c95b6f9f223bf8f0 Mon Sep 17 00:00:00 2001 From: Javier Goizueta Date: Wed, 29 Oct 2008 17:28:03 +0100 Subject: [PATCH] Handle the srid property of Spatial Adapter's geometric fields --- hobofields/lib/hobo_fields/field_spec.rb | 7 ++++++- hobofields/lib/hobo_fields/migration_generator.rb | 1 + 2 files changed, 7 insertions(+), 1 deletions(-) diff --git a/hobofields/lib/hobo_fields/field_spec.rb b/hobofields/lib/hobo_fields/field_spec.rb index 1beab26..a6d99d3 100644 --- a/hobofields/lib/hobo_fields/field_spec.rb +++ b/hobofields/lib/hobo_fields/field_spec.rb @@ -45,13 +45,18 @@ module HoboFields def default options[:default] end + + def srid + options[:srid] + end def different_to?(col_spec) - sql_type != col_spec.type || + sql_type != (col_spec.type==:geometry ? col_spec.geometry_type : col_spec.type) || begin check_cols = [:null, :default] check_cols += [:precision, :scale] if sql_type == :decimal check_cols << :limit if sql_type.in?([:string, :text, :binary, :integer]) + check_cols << :srid if col_spec.type==:geometry check_cols.any? { |k| col_spec.send(k) != self.send(k) } end end diff --git a/hobofields/lib/hobo_fields/migration_generator.rb b/hobofields/lib/hobo_fields/migration_generator.rb index 3504c5a..becdf6d 100644 --- a/hobofields/lib/hobo_fields/migration_generator.rb +++ b/hobofields/lib/hobo_fields/migration_generator.rb @@ -250,6 +250,7 @@ module HoboFields change_spec[:scale] = spec.scale unless spec.scale.nil? change_spec[:null] = spec.null unless spec.null && col.null change_spec[:default] = spec.default unless spec.default.nil? && col.default.nil? + change_spec[:srid] = spec.srid unless spec.srid.nil? changes << "change_column :#{new_table_name}, :#{c}, " + ([":#{spec.sql_type}"] + format_options(change_spec, spec.sql_type, true)).join(", ") -- 1.6.0.2