MySQL & Rails 4 - bundle exec rake db:migrate - 不支持迁移到 UTF-8 的数据库

MySQL & Rails 4 - bundle exec rake db:migrate - Unsupported database for migration to UTF-8

我在 Rails 4 上有一个 Ruby 我从 Github 克隆的应用程序,我正试图在我的 MacBook 上启动并 运行ning环境。

最初应用程序抱怨找不到 MySQL,所以我找到了 brew install mysql。我现在有 mysqld 运行 用户名 root 并且没有密码并且应用程序能够连接到它,所以我克服了第一个障碍。

不过,数据库中还没有构建模式——我可以在 db/migrate/ 目录中看到大约 115 个文件,名称如 004_make_unicode_fiendly.rb016_add_asin_column.rb

我尝试 运行 bundle exec rake db:migrate,但在前三个迁移文件显然 运行 成功后出现错误:

Migration error: Unsupported database for migration to UTF-8 support
/Users/jon/work/amazing_app/db/migrate/004_make_unicode_friendly.rb:22:in `alter_database_and_tables_charsets'
/Users/jon/work/amazing_app/db/migrate/004_make_unicode_friendly.rb:3:in `up'

运行ning mysqladmin variables | grep utf8 显示:

| character_set_client                               | utf8
| character_set_connection                           | utf8
| character_set_database                             | utf8
| character_set_results                              | utf8
| character_set_server                               | utf8
| character_set_system                               | utf8
| collation_connection                               | utf8_general_ci
| collation_database                                 | utf8_general_ci
| collation_server                                   | utf8_general_ci

我的问题:为什么会出现迁移错误?

讨论的答案: - 执行 (bundle exec rake) db:create, db:reset

这将使用您的种子和模式创建数据库,就像它们在另一台机器上一样。不知道具体的错误详细信息,我无法评论您一开始收到错误的原因(除非它说您无法迁移到 UTF-8,因为您 已经 使用 UTF -8).

仅供参考,除非您现有的代码库有待迁移,否则 DB:Migrate 不是必需的。