【问题标题】:Rake db:migrate error while upgrade from rails2 to rails3从 rails2 升级到 rails3 时 Rake db:migrate 错误
【发布时间】:2013-10-24 10:42:41
【问题描述】:

我已将 rails2 升级到 rails3,当我尝试 rake db:migrate 时发现以下错误

** Invoke db:migrate (first_time)

** Invoke environment (first_time)

** Execute environment

DEPRECATION WARNING: The InstanceMethods module inside ActiveSupport::Concern will be no longer included automatically. Please define instance methods directly in ActiveSupport::Callbacks instead. (called from include at /home/cis/.rvm/gems/ruby-1.9.3-p392@rails3214/gems/actionpack-3.2.14/lib/action_dispatch/middleware/reloader.rb:29)

** Invoke db:load_config (first_time)

** Execute db:load_config

** Execute db:migrate

rake aborted!

/home/cis/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.1.0/lib/rake/trace_output.rb:16:in `block in trace_on': invalid byte sequence in US-ASCII (ArgumentError)

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.1.0/lib/rake/trace_output.rb:14:in `map'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.1.0/lib/rake/trace_output.rb:14:in `trace_on'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.1.0/lib/rake/application.rb:340:in `trace'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.1.0/lib/rake/application.rb:187:in `display_error_message'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@rails3214/gems/airbrake-3.1.14/lib/airbrake/rake_handler.rb:23:in `display_error_message_with_airbrake'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.1.0/lib/rake/application.rb:174:in `rescue in standard_exception_handling'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.1.0/lib/rake/application.rb:75:in `run'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.1.0/bin/rake:33:in `<top (required)>'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/bin/rake:19:in `load'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@global/bin/rake:19:in `<main>'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@rails3214/bin/ruby_executable_hooks:15:in `eval'

    from /home/cis/.rvm/gems/ruby-1.9.3-p392@rails3214/bin/ruby_executable_hooks:15:in `<main>'

【问题讨论】:

  • 添加整个错误堆栈
  • 请看上面我已经添加了整个跟踪

标签: ruby-on-rails ruby-on-rails-3.2 ruby-on-rails-2


【解决方案1】:

错误是由于某些 db/migration 文件中的非 ascii 字符造成的。 添加

#encoding: utf-8 

到你看到奇怪字符的文件

【讨论】:

【解决方案2】:

好像是编码错误

将以下几行添加到 environment.rb 文件并运行迁移

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

【讨论】:

  • 即使在使用 UTF_8 之后,您是否收到与您发布的相同的错误?
  • 是的,我遇到了同样的错误。我在 config/environment.rb 文件中添加了上面的行。我已将应用程序从 rails2 升级到 rails3.2.14
  • 希望您已采取所有预防措施从 rails 2 更新到 3。this 可能会有所帮助
  • 是的,我已经按照所有指令应用程序成功运行,但是 rake db:migrate 给我错误
  • 谢谢问题已通过在迁移文件中添加#encoding utf8 解决,但我发现另一个错误,请您帮助我stackoverflow.com/questions/19564397/…
猜你喜欢
  • 1970-01-01
  • 2018-10-06
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 2018-02-05
  • 2014-07-16
  • 2013-09-03
相关资源
最近更新 更多