rake test:x recreates tables in MySQL with server (not database) charset and collation

Any thoughts on how to avoid this problem? Already tried:

1. Setting the charset and collation in migration 001 - no effect:

  def self.up
    db_name = ActiveRecord::Base::connection.current_database()
    execute "ALTER DATABASE #{db_name} CHARACTER SET utf8 COLLATE
utf8_bin"
  end

2. Setting the charset and collation on each table individually - no
effect:
   {:options=>"engine=InnoDB CHARACTER SET utf8 COLLATE utf8_bin"}

Note that development and production environments work fine with
database default, migration 001, or setting per each table. Only the
test db, specifically after a rake test:units run has this problem.

Repro:

1. Create DB (MySQL 5.0.24a)
CREATE DATABASE foobar CHARACTER SET utf8 COLLATE utf8_bin;

2. Run migration (Rails 1.2)

3. Verify database and all tables have charset utf8 and collation of
utf_bin: yes.
select @@character_set_server, etc...
---------------------- ------------------ ------------------------

I've since realized that the rake test tasks probably use the schema
dump mechanism - not migrations - to drop and recreate the DB; I'd
surmise that http://dev.rubyonrails.org/ticket/4751 is at least
related to this problem with test DB's.

For the moment, I shoved a hack into mysql_adapter to read and use
character sets and collations when recreating DB's. I suspect there
probably needs to be a better long term solution (or at least a better
coded and tested one.)

The full diff for the above follows (there's a couple obvious problems
with this code and probably many non-obvious ones - don't use this
anywhere that counts):

Index: activerecord/lib/active_record/connection_adapters/
mysql_adapter.rb