aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record')
-rwxr-xr-xactiverecord/lib/active_record/connection_adapters/abstract_adapter.rb5
-rwxr-xr-xactiverecord/lib/active_record/connection_adapters/mysql_adapter.rb22
2 files changed, 14 insertions, 13 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
index b0865d9aab..ba18bad504 100755
--- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
@@ -377,8 +377,9 @@ module ActiveRecord
end
def add_column(table_name, column_name, type, options = {})
- add_column_sql = "ALTER TABLE #{table_name} ADD #{column_name} #{native_database_types[type]}"
- add_column_sql << "(#{limit})" if options[:limit]
+ native_type = native_database_types[type]
+ add_column_sql = "ALTER TABLE #{table_name} ADD #{column_name} #{native_type[:name]}"
+ add_column_sql << "(#{options[:limit] || native_type[:limit]})" if options[:limit] || native_type[:limit]
add_column_sql << " DEFAULT '#{options[:default]}'" if options[:default]
execute(add_column_sql)
end
diff --git a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
index 0c78b921b6..9537269260 100755
--- a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -66,17 +66,17 @@ module ActiveRecord
def native_database_types
{
- :primary_key => "int(11) DEFAULT NULL auto_increment PRIMARY KEY",
- :string => "varchar(255)",
- :text => "text",
- :integer => "int(11)",
- :float => "float",
- :datetime => "datetime",
- :timestamp => "datetime",
- :time => "datetime",
- :date => "date",
- :binary => "blob",
- :boolean => "tinyint(1)"
+ :primary_key => { :name => "int(11) DEFAULT NULL auto_increment PRIMARY KEY" },
+ :string => { :name => "varchar", :limit => 255 },
+ :text => { :name => "text" },
+ :integer => { :name => "int", :limit => 11 },
+ :float => { :name => "float" },
+ :datetime => { :name => "datetime" },
+ :timestamp => { :name => "datetime" },
+ :time => { :name => "datetime" },
+ :date => { :name => "date" },
+ :binary => { :name => "blob" },
+ :boolean => { :name => "tinyint", :limit => 1 }
}
end