【问题标题】:Rails & Heroku: PG db fails to create databaseRails & Heroku:PG db 无法创建数据库
【发布时间】:2014-11-01 00:12:18
【问题描述】:

我几乎阅读了关于部署到 heroku 的所有问题和文档,这不是我第一次,但现在在部署时出现了一个非常奇怪的问题:我无法创建数据库:

Running `rake db:create --trace` attached to terminal... up, run.8982
** Invoke db:create (first_time)
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:create
FATAL:  permission denied for database "postgres"
DETAIL:  User does not have CONNECT privilege.
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-4.1.2/lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `initialize'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-4.1.2/lib/active_record/connection_adapters/postgresql_adapter.rb:888:in `new'
.
.
.
.
Couldn't create database for {"adapter"=>"postgresql", "host"=>"ec2-23-23-244-144.compute-1.amazonaws.com", "encoding"=>"unicode", "database"=>"d80e387p61nnl1", "pool"=>5, "template"=>"template0", "username"=>"******", "password"=>"********", "port"=>5432}

不是这样的:

FactoryGirl screws up rake db:migrate process

我几乎把所有与工厂女孩有关的东西都拿出来了,一切都在规范文件中。

也不是这个:

Rails 4.0.1 on Heroku, can't create database

这是我的 gemfile:

source 'https://rubygems.org'
ruby '1.9.3'
gem 'rails', '4.1.2'


#Assets
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'jquery-turbolinks'
gem 'turbolinks'
gem "autoprefixer-rails"

#jQuery
gem 'magnific-popup-rails'
gem 'ckeditor'
gem 'gmaps4rails'
gem "select2-rails"
gem 'chosen-rails'
gem 'jquery-tokeninput-rails'
gem 'jquery-timepicker-rails'
gem 'easy_as_pie'
gem 'modernizr-rails'
gem "font-awesome-rails"
gem 'jquery-slimscroll-rails'
gem 'jquery-placeholder-rails'
gem 'autosize-rails'

gem 'newrelic_rpm'


#frontend
gem 'rails_12factor', group: :production
gem 'friendly_id', '~> 5.0.0' # Note: You MUST use 5.0.0 or greater for Rails 4.0+

gem 'rack-cors', :require => 'rack/cors'

gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc
gem 'spring',        group: :development
gem 'bootstrap-sass'
gem 'devise'
gem 'high_voltage'
gem 'thin'

gem 'lodash-rails'


#Database
gem 'ransack'
gem 'pg'
gem 'pg_search'
gem 'simple_form'

# gem 'ng-rails-csrf'
gem 'wiselinks'

# Development Only
group :development do
  gem 'binding_of_caller', :platforms=>[:mri_19]
  gem 'rails_layout'
  gem 'meta_request'
  gem 'better_errors'
  gem 'hirb' #use Hirb.enable to enable it / text to Column
  gem 'awesome_print', :require => 'ap'
  gem 'railroady' #run this command: rake diagram:all
  gem "bullet" # it always works unless you remove the initilzer
  gem "reek" # run this : reek .
  gem 'brakeman', :require => false # run this : brakeman [appPath] -o output_file
  gem 'traceroute' # to check unUsed and Unreachable routes >  rake traceroute
  gem 'quiet_assets' #takes away the Asset messages in the Log
  gem 'annotate', ">=2.6.0"
  gem "letter_opener", :group => :development
  gem 'rails_apps_pages'
end


group :development, :test do
  gem 'rspec-rails'
end


group :test do
  gem 'capybara'
  gem 'database_cleaner'
  gem 'launchy'
  gem 'selenium-webdriver'
end

gem 'ffaker'
gem 'populator'

gem 'activeadmin', github: 'gregbell/active_admin'
# gem "meta_search",    '>= 1.1.0.pre'
#rails Legacy Gems
gem 'protected_attributes'
gem 'rails-observers'
gem 'actionpack-page_caching'
gem 'actionpack-action_caching'


#Images:
gem 'carrierwave'
gem 'rmagick', :require => false




gem 'kaminari'


# gem "bower-rails", "~> 0.8.3"
# gem 'react-rails', '~> 0.10.0.0'
# gem 'react-rails', '~> 1.0.0.pre', github: 'reactjs/react-rails'
# gem "therubyracer", :platforms => :ruby
# gem "therubyrhino", :platforms => :jruby

gem 'activerecord-reputation-system'
gem 'acts-as-taggable-on'
gem 'markable'

gem 'country_select', github: 'stefanpenner/country_select'
gem 'rails4-autocomplete'

# gem 'linkedin' hasie 3.3.0 error
#messaging
gem 'mailboxer'

在我的 Heroku 日志中,这是我发现的:

Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
2014-09-07T17:20:38.089695+00:00 app[web.1]: => Ctrl-C to shutdown server
2014-09-07T17:20:38.089697+00:00 app[web.1]: Exiting
2014-09-07T17:20:38.357403+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:247:in `require': No such file to load -- mini_magick (LoadError)
2014-09-07T17:20:38.357406+00:00 app[web.1]:    from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-4.1.2/lib/active_support/dependencies.rb:247:in `block in require'

非常感谢任何帮助。

【问题讨论】:

  • 你是在将 database.yml 推送到 heroku 吗?
  • @Mandeep 是的,我只是您的回答,然后将其删除,:/ 但我现在会尝试,如果有效,请发布,因为如果这是我的问题,您应该获得奖牌:)
  • 在回答后意识到你没有提到任何关于 database.yml 的内容,所以我想我应该先在评论中问它。 :)
  • @Mandeep :( 删除了 db 文件,并确保控制版本也没有添加它,但仍然是同样的错误!
  • 检查更新的答案以将其删除

标签: ruby-on-rails ruby postgresql ruby-on-rails-4 heroku


【解决方案1】:

从我遇到的这个问题中可以吸取的教训很少,但首先让我们回答,然后解释发生了什么。

简答:

尽管删除了被认为会导致 rake 损坏的测试,但还有其他需要删除的东西被遗漏了,这会导致问题:

1- 在application.rb这发生了:

 config.generators do |g|
g.test_framework :rspec,
fixtures: true,
view_specs: false,
helper_specs: false,
routing_specs: false,
controller_specs: false,
request_specs: false
g.fixture_replacement :factory_girl, dir: "spec/factories"
end

2- 在seed.rb 文件中发生了这种情况:

# user = CreateAdminService.new.call
# puts 'CREATED ADMIN USER: ' << user.email

教训:

1- 不要使用自动应用生成器。就我而言,我使用的是#RailsComposer。

2- Bower on Rails 是一个糟糕的决定,它可以将一个非常简单的应用程序变成一个疯狂的亚马逊丛林

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-16
    • 2012-09-18
    • 2013-12-16
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 2012-04-30
    • 2013-11-06
    相关资源
    最近更新 更多