Mysql 从heroku提取数据库失败,编码::CompatibilityError

Mysql 从heroku提取数据库失败,编码::CompatibilityError,mysql,ruby-on-rails,heroku,Mysql,Ruby On Rails,Heroku,我在执行db时遇到了一些问题:从heroku拉回到我当地的开发环境 我的设置是MySQL(5.1.50),通过RVM从MacPorts安装到Mac OS X Snow Leopard下的本地Rails 3/Ruby 1.9.2环境中,我已经多次成功地将heroku db:push推送到heroku上的生产站点。但是,在具有相同设置的二次开发计算机上,当我尝试通过Heroku DB:pull将Heroku DB拉回来时,在它下载表和索引信息一段时间后,我得到以下错误: /Users/jschuur

我在执行db时遇到了一些问题:从heroku拉回到我当地的开发环境

我的设置是MySQL(5.1.50),通过RVM从MacPorts安装到Mac OS X Snow Leopard下的本地Rails 3/Ruby 1.9.2环境中,我已经多次成功地将heroku db:push推送到heroku上的生产站点。但是,在具有相同设置的二次开发计算机上,当我尝试通过
Heroku DB:pull
将Heroku DB拉回来时,在它下载表和索引信息一段时间后,我得到以下错误:

/Users/jschuur/.rvm/gems/ruby-1.9.2-p0/gems/sequel-3.15.0/lib/sequel/adapters/shared/mysql.rb:399:in `join': incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError)
    from /Users/jschuur/.rvm/gems/ruby-1.9.2-p0/gems/sequel-3.15.0/lib/sequel/adapters/shared/mysql.rb:399:in `multi_insert_sql'
以下是相关的宝石:

ruby-mysql (2.9.3)
sequel (3.15.0)
mysql2 (0.2.4)
taps (0.3.13)
heroku (1.10.6, 1.10.5, 1.10.0)
完整的错误和gem列表

同样的错误也发生在我的主生产机器上(顺便说一句,我在其中成功地完成了db:push-to-heroku表单)

现在我知道这基本上是一个UTF8编码错误。FWIW,my database.yml显式引用UTF8:

development:
  adapter: mysql2
  encoding: utf8
  database: rails_dev_dbname
  pool: 5
  username: rails
  socket: /tmp/mysql.sock
现在有趣的是,如果我创建一个几乎空白的DB,其中只有一个测试条目,我可以很好地推/拉它。显然,我的非UTF8数据集中有些东西。虽然那里还没有太多的数据,但完全有可能是我在其中复制了一些文字,其中包含了令人窒息的时髦引用或版权符号


所以问题是,我该如何解决这个问题?Heroku文档确实在推送时提到了您的DB URL,但我假设我的默认值
Heroku DB:push
,它首先将数据发送到Heroku,然后使用了
数据库.yml
,它已经设置了这个值。无论哪种方式,我都以这种方式进行了显式推送,而后续的拉送仍然存在同样的问题。

当我遇到错误时,使用轻触键推送和拉送时,我会将我的ruby版本切换到1.8.7,因此您可能希望尝试一下


如果您不使用此功能,请使用它来管理您的ruby版本。这确实奏效,但为什么呢?可能是1.9中出现了一些新的违约,这与我们的假设相冲突。谢谢你的快速回复。