【问题标题】:DEPRECATION WARNING while using bundle install使用捆绑安装时的弃用警告
【发布时间】:2015-05-01 07:10:00
【问题描述】:

所以我正在尝试进行捆绑安装。但它抛出了以下错误。这里有什么问题?

bundle exec rake db:create:all
DEPRECATION WARNING: String based terminators are deprecated, please use a lambda. (called from included at /home/.gem/ruby/2.1.3/bundler/gems/authlogic-09163c7d2a9b/lib/authlogic/session/callbacks.rb:66)
DEPRECATION WARNING: String based terminators are deprecated, please use a lambda. (called from included at /home/.gem/ruby/2.1.3/bundler/gems/authlogic-09163c7d2a9b/lib/authlogic/session/callbacks.rb:67)
rake aborted!
Cannot load `Rails.application.database_configuration`:
Could not load database configuration. No such file - 
/home/.gem/ruby/2.1.3/gems/railties-4.1.5/lib/rails/application/configuration.rb:105:in `database_configuration'
/home/.gem/ruby/2.1.3/gems/activerecord-4.1.5/lib/active_record/railtie.rb:43:in `block (3 levels) in <class:Railtie>'
Could not load database configuration. No such file - 
/home/.gem/ruby/2.1.3/gems/railties-4.1.5/lib/rails/application/configuration.rb:105:in `database_configuration'
/home/.gem/ruby/2.1.3/gems/activerecord-4.1.5/lib/active_record/railtie.rb:43:in `block (3 levels) in <class:Railtie>'
Tasks: TOP => db:create:all => db:load_config
(See full trace by running task with --trace)

之前我尝试过以下方法:

rake db:create:all
rake aborted!
Gem::LoadError: You have already activated rake 10.4.2, but your Gemfile requires rake 10.3.2. Prepending `bundle exec` to your command may solve this.
/home/.gem/ruby/2.1.3/gems/bundler-1.7.12/lib/bundler/runtime.rb:34:in `block in setup'
/home/.gem/ruby/2.1.3/gems/bundler-1.7.12/lib/bundler/runtime.rb:19:in `setup'
/home/.gem/ruby/2.1.3/gems/bundler-1.7.12/lib/bundler.rb:122:in `setup'
/home/.gem/ruby/2.1.3/gems/bundler-1.7.12/lib/bundler/setup.rb:7:in `<top (required)>'
/home/project/config/boot.rb:4:in `<top (required)>'
/home/project/config/application.rb:1:in `<top (required)>'
/home/project/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
/home/project/config/boot.rb:4:in `<top (required)>'
/home/project/config/application.rb:1:in `<top (required)>'
/home/project/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
$  bundle exec rake db:create:all
DEPRECATION WARNING: String based terminators are deprecated, please use a lambda. (called from included at /home/.gem/ruby/2.1.3/bundler/gems/authlogic-09163c7d2a9b/lib/authlogic/session/callbacks.rb:66)
DEPRECATION WARNING: String based terminators are deprecated, please use a lambda. (called from included at /home/.gem/ruby/2.1.3/bundler/gems/authlogic-09163c7d2a9b/lib/authlogic/session/callbacks.rb:67)
rake aborted!
Cannot load `Rails.application.database_configuration`:
Could not load database configuration. No such file - 
/home/.gem/ruby/2.1.3/gems/railties-4.1.5/lib/rails/application/configuration.rb:105:in `database_configuration'
/home/.gem/ruby/2.1.3/gems/activerecord-4.1.5/lib/active_record/railtie.rb:43:in `block (3 levels) in <class:Railtie>'
Could not load database configuration. No such file - 
/home/.gem/ruby/2.1.3/gems/railties-4.1.5/lib/rails/application/configuration.rb:105:in `database_configuration'
/home/.gem/ruby/2.1.3/gems/activerecord-4.1.5/lib/active_record/railtie.rb:43:in `block (3 levels) in <class:Railtie>'
Tasks: TOP => db:create:all => db:load_config
(See full trace by running task with --trace)

【问题讨论】:

  • 你有database.yml文件吗?
  • 首先,你不是在尝试做bundle install。你正在尝试做一个rake db:create:all

标签: ruby-on-rails ruby ruby-on-rails-4 rake bundler


【解决方案1】:

您正在尝试运行“rake db:create:all”来创建您的数据库,但作为错误状态 - 您似乎没有 config/database.yml 文件。它是一个配置文件,告诉 Rails 如何连接到您的数据库。你可以阅读更多关于它的信息here

如果您真的想运行捆绑安装,只需使用“捆绑安装”命令即可。这将安装 Gemfile 中列出的所有 gem。

如果您遇到 rake 版本冲突问题,请查看 this 堆栈溢出问题。

【讨论】:

  • 谢谢。这就是问题所在。它现已启动并运行。
【解决方案2】:

您的项目目录中似乎没有 config/database.yml 文件。

为什么我这么认为?跟我来……

无法加载数据库配置。没有这样的文件 - /home/.gem/ruby/2.1.3/gems/railties-4.1.5/lib/rails/application/configuration.rb:105:in `database_configuration'

好的,我们来看看这段代码有错误的地方:

yaml = Pathname.new(paths["config/database"].existent.first || "")
config = if yaml.exist?
  require "yaml"
  require "erb"
  YAML.load(ERB.new(yaml.read).result) || {}
elsif ENV['DATABASE_URL']
  # Value from ENV['DATABASE_URL'] is set to default database connection
  # by Active Record.
  {}
else
  raise "Could not load database configuration. No such file - #{yaml}"
end

如您所见 - 如果没有这样的文件或 ENV 变量,则 rails 会抛出错误。

【讨论】:

  • 谢谢。这就是问题所在。你从哪里得到这个代码?看起来像rails代码。我在哪里可以找到它?
  • 这是 rails 的主仓库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-23
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多