From 65786805ca89bbcaf7aa89e74f99964e0f5fd89e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 10 Mar 2005 14:24:28 +0000 Subject: More incremental work on active schema for MySQL git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@884 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- .../connection_adapters/abstract_adapter.rb | 5 +++-- .../connection_adapters/mysql_adapter.rb | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 13 deletions(-) (limited to 'activerecord/lib/active_record/connection_adapters') 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 -- cgit v1.2.3