aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Guidi <guidi.luca@gmail.com>2008-10-03 16:08:17 +0200
committerMichael Koziarski <michael@koziarski.com>2008-10-03 22:08:55 +0200
commit1bc267d21679408b3624d1c697656ec250c01972 (patch)
tree215ca0839ffea807b930a3dd3e29e5c48d5061f3
parent7553a23c0a84424bdbc09cc81791f41bfebe1b25 (diff)
downloadrails-1bc267d21679408b3624d1c697656ec250c01972.tar.gz
rails-1bc267d21679408b3624d1c697656ec250c01972.tar.bz2
rails-1bc267d21679408b3624d1c697656ec250c01972.zip
Make sure recreate MySQL test database with the proper encoding and collation [#1165 state:resolved]
Signed-off-by: Michael Koziarski <michael@koziarski.com> [#1165 state:committed]
-rw-r--r--activerecord/lib/active_record/connection_adapters/mysql_adapter.rb4
-rw-r--r--activerecord/test/cases/active_schema_test_mysql.rb5
-rw-r--r--railties/lib/tasks/databases.rake2
3 files changed, 8 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
index a26fd02b90..3aa27bfc99 100644
--- a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -371,9 +371,9 @@ module ActiveRecord
end
end
- def recreate_database(name) #:nodoc:
+ def recreate_database(name, options = {}) #:nodoc:
drop_database(name)
- create_database(name)
+ create_database(name, options)
end
# Create a new MySQL database with optional <tt>:charset</tt> and <tt>:collation</tt>.
diff --git a/activerecord/test/cases/active_schema_test_mysql.rb b/activerecord/test/cases/active_schema_test_mysql.rb
index 2a42dc3517..9aff538ce9 100644
--- a/activerecord/test/cases/active_schema_test_mysql.rb
+++ b/activerecord/test/cases/active_schema_test_mysql.rb
@@ -25,6 +25,11 @@ class ActiveSchemaTest < ActiveRecord::TestCase
assert_equal "CREATE DATABASE `aimonetti` DEFAULT CHARACTER SET `latin1`", create_database(:aimonetti, {:charset => 'latin1'})
assert_equal "CREATE DATABASE `matt_aimonetti` DEFAULT CHARACTER SET `big5` COLLATE `big5_chinese_ci`", create_database(:matt_aimonetti, {:charset => :big5, :collation => :big5_chinese_ci})
end
+
+ def test_recreate_mysql_database_with_encoding
+ create_database(:luca, {:charset => 'latin1'})
+ assert_equal "CREATE DATABASE `luca` DEFAULT CHARACTER SET `latin1`", recreate_database(:luca, {:charset => 'latin1'})
+ end
end
def test_add_column
diff --git a/railties/lib/tasks/databases.rake b/railties/lib/tasks/databases.rake
index 1431aa6944..5cb27f1f10 100644
--- a/railties/lib/tasks/databases.rake
+++ b/railties/lib/tasks/databases.rake
@@ -341,7 +341,7 @@ namespace :db do
case abcs["test"]["adapter"]
when "mysql"
ActiveRecord::Base.establish_connection(:test)
- ActiveRecord::Base.connection.recreate_database(abcs["test"]["database"])
+ ActiveRecord::Base.connection.recreate_database(abcs["test"]["database"], abcs["test"])
when "postgresql"
ActiveRecord::Base.clear_active_connections!
drop_database(abcs['test'])