【问题标题】:rake gems:install shows error (database is not migrating)/rake gems:install 显示错误(数据库未迁移)/
【发布时间】:2018-01-10 13:19:31
【问题描述】:
  1. 红宝石:1.8.7
  2. 导轨:2.3.8
  3. 数据库:我的 SQL

数据库已创建,但当我迁移数据库时,它显示错误。所以如果有人可以帮助我解决这个问题,那对我来说很好。


$ rake db:migrate
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
DEPRECATION WARNING: Rake tasks in vendor/plugins/active_record_tableless/tasks, vendor/plugins/annotate-models/tasks, vendor/plugins/asset_auto_include/tasks, vendor/plugins/hoptoad_notifier/tasks, vendor/plugins/jrails/tasks, vendor/plugins/sitemap_generator-plugin/tasks, vendor/plugins/thinking-sphinx/tasks, and vendor/plugins/tiny_mce/tasks are deprecated. Use lib/tasks instead. (called from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/rails-2.3.8/lib/tasks/rails.rb:10)
rake aborted!
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/tinypass-1.0.1/lib/tinypass/builder/client_parser.rb:3: invalid regular expression; there's no previous pattern, to which '{' would define cardinality at 1: /{\w\w\w}/
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/tinypass-1.0.1/lib/tinypass/builder/client_parser.rb:44: invalid regular expression; there's no previous pattern, to which '{' would define cardinality at 2: /^{...}/
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/tinypass-1.0.1/lib/tinypass/builder.rb:2
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/tinypass-1.0.1/lib/tinypass.rb:1
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/rails-2.3.8/lib/rails/gem_dependency.rb:215:in `load'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/rails-2.3.8/lib/initializer.rb:307:in `load_gems'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/rails-2.3.8/lib/initializer.rb:307:in `each'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/rails-2.3.8/lib/initializer.rb:307:in `load_gems'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/rails-2.3.8/lib/initializer.rb:164:in `process'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/rails-2.3.8/lib/initializer.rb:113:in `send'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/rails-2.3.8/lib/initializer.rb:113:in `run'
/home/aspireedge/Aspiree/***********/config/environment.rb:15
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/rails-2.3.8/lib/tasks/misc.rake:4
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

当我启动服务器时也显示错误。所以如果有人可以帮助我解决这个问题,那对我来说很好。

    $ruby script/server 
=> Booting WEBrick
=> Rails 2.3.8 application starting on http://0.0.0.0:3000
/usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/tinypass-1.0.1/lib/tinypass/builder/client_parser.rb:3: invalid regular expression; there's no previous pattern, to which '{' would define cardinality at 1: /{\w\w\w}/ (SyntaxError)
/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/tinypass-1.0.1/lib/tinypass/builder/client_parser.rb:44: invalid regular expression; there's no previous pattern, to which '{' would define cardinality at 2: /^{...}/
    from /usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/tinypass-1.0.1/lib/tinypass/builder.rb:2
    from /usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/tinypass-1.0.1/lib/tinypass.rb:1
    from /usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/rails-2.3.8/lib/rails/gem_dependency.rb:215:in `load'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/rails-2.3.8/lib/initializer.rb:307:in `load_gems'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/rails-2.3.8/lib/initializer.rb:307:in `each'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/rails-2.3.8/lib/initializer.rb:307:in `load_gems'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/rails-2.3.8/lib/initializer.rb:164:in `process'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/rails-2.3.8/lib/initializer.rb:113:in `send'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/rails-2.3.8/lib/initializer.rb:113:in `run'
    from /home/aspireedge/Aspiree/************/config/environment.rb:15
    from /usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
    from /home/aspireedge/.rvm/gems/ruby-1.8.7-**********/******/rails-2.3.8/lib/commands/server.rb:84
    from /usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/share/rvm/rubies/ruby-1.8.7-head/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from script/server:3

当我更改Client_phaser.rb的代码时。

    rake db:migrate
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
DEPRECATION WARNING: Rake tasks in vendor/plugins/active_record_tableless/tasks, vendor/plugins/annotate-models/tasks, vendor/plugins/asset_auto_include/tasks, vendor/plugins/hoptoad_notifier/tasks, vendor/plugins/jrails/tasks, vendor/plugins/sitemap_generator-plugin/tasks, vendor/plugins/thinking-sphinx/tasks, and vendor/plugins/tiny_mce/tasks are deprecated. Use lib/tasks instead. (called from /home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/rails-2.3.8/lib/tasks/rails.rb:10)

rake aborted!
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:50: odd number list for Hash
        o1: build_offer(request.primary_offer),
           ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:50: syntax error, unexpected ':', expecting '}'
        o1: build_offer(request.primary_offer),
           ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:50: syntax error, unexpected ',', expecting kEND
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:52: syntax error, unexpected ':', expecting '='
        v: Config::MSG_VERSION,
          ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:52: dynamic constant assignment
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:53: syntax error, unexpected ':', expecting '='
        cb: request.callback
           ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:54: syntax error, unexpected '}', expecting kEND
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:66: odd number list for Hash
        rid: offer.resource.rid,
            ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:66: syntax error, unexpected ':', expecting '}'
        rid: offer.resource.rid,
            ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:67: syntax error, unexpected ':', expecting '='
        rnm: offer.resource.name,
            ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:68: syntax error, unexpected ':', expecting '='
        rurl: offer.resource.url,
             ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:69: syntax error, unexpected ':', expecting '='
        pos: build_price_options(offer.pricing.price_options),
            ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:69: syntax error, unexpected ',', expecting kEND
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:71: syntax error, unexpected '}', expecting kEND
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:91: odd number list for Hash
        price: price_option.price || '',
              ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:91: syntax error, unexpected ':', expecting '}'
        price: price_option.price || '',
              ^
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:91: syntax error, unexpected ',', expecting kEND
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:92: syntax error, unexpected ',', expecting kEND
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder/json_msg_builder.rb:94: syntax error, unexpected '}', expecting kEND
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass/builder.rb:4
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/tinypass-1.0.1/lib/tinypass.rb:1
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/rails-2.3.8/lib/rails/gem_dependency.rb:215:in `load'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/rails-2.3.8/lib/initializer.rb:307:in `each'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/rails-2.3.8/lib/initializer.rb:164:in `process'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/rails-2.3.8/lib/initializer.rb:113:in `send'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/rails-2.3.8/lib/initializer.rb:113:in `run'
/home/aspireedge/Aspiree/pyromaniac/config/environment.rb:78
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
/home/aspireedge/.rvm/gems/ruby-1.8.7-head@pyro/gems/rails-2.3.8/lib/tasks/misc.rake:4
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

【问题讨论】:

  • 所以我把这段代码放在我的 application.rb 中?
  • 我已经放了这个,但仍然有同样的错误和警告
  • 它的语法错误:) in client_parser.rb:3
  • 该错误与一些 tinypass gem 配置有关。可能某些设置不正确或缺少某些数据(无效的正则表达式)
  • 正是我删除了该 gem 并重新安装它,但仍然出现错误:)

标签: mysql ruby-on-rails ruby database migration


【解决方案1】:

问题出在 tinypass gem 中。 README 声明该 gem 需要 Ruby 1.9.2 或更高版本。

共有三个选项:

  1. 查找与 ruby​​ 1.8.7 版本兼容的 tinypass 版本。
  2. fork 这个 gem 并实现对旧 rubies 的支持。
  3. 更新您的应用程序以使用更新的 Ruby。

【讨论】:

  • 我感受到了你的痛苦!因此,分叉看起来是唯一的解决方案。
  • 感谢 @itsnikolay 抽出宝贵时间,但仍然遇到同样的错误。
【解决方案2】:

正则表达式有错误

尝试使用我的 fork 进行修复:

# Gemfile
gem 'tinypass',
 :git    => 'https://github.com/itsNikolay/ruby-sdk.git',
 :branch => 'fix-regexp'

然后尝试再次运行迁移

【讨论】:

  • 嘿,我使用了 Ruby:1.8.7,Rails:2.3.8,Db:我的 SQL,我看到你的 repo 适用于 Ruby 1.9.2 或更高版本。顺便说一句,感谢 @itsnikolay 抽出宝贵时间,但仍然遇到同样的错误。
  • @RonakBhatt 尝试像我一样手动编辑文件github.com/tinypass/ruby-sdk/commit/… 文件位于/home/aspireedge/.rvm/gems/ruby-1.8.7-**********/****/tinypass-1.0.1/lib/tinypass/builder/client_parser.rb
  • 它显示了一些错误兄弟:)。我提出的问题
  • @itsnikolay 你必须增加版本号才能在安装了最新版本的 tinypass 时安装你的 fork。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-18
  • 2012-12-27
  • 2015-06-08
  • 2015-04-06
  • 2017-09-06
  • 2018-12-18
相关资源
最近更新 更多