Rails& Heroku:PG数据库无法创建数据库 [英] Rails & Heroku: PG db fails to create database
问题描述
我已经几乎阅读了有关部署到heroku的每个问题和文档,这不是我第一次,但现在在部署时非常奇怪的scnario中,我无法创建数据库:
运行`rake db:create --trace`附加到terminal ... up,run.8982
**调用db:create(first_time)
**调用db:load_config(first_time)
**执行db:load_config
**执行db:create
FATAL:数据库的权限被拒绝postgres
详细信息:用户没有CONNECT权限。
/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:在`new'
。
。
。
。
无法为{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拧up rake db:migrate进程
我几乎把与Factory女孩有关的所有东西都放在spec文件中。 >
不是这样:
这是我的gemfile:
source'https://rubygems.org'
ruby'1.9.3'
gem'rails','4.1.2'
#资产
宝石'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'
gemselect2-导轨
gem'selected-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'#注意:您必须使用5.0.0或更高版本的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'
#数据库
gem'ransack'
gem'pg'
gem'pg_search'
gem'simple_form'
#gem'ng-rails-csrf'
gem'wiselinks'
#开发仅
组:开发
gem'binding_of_caller',:platforms => [:mri_19]
gem'rails_layout'
gem'meta_request'
gem' better_errors'
gem'hirb'#use Hirb.enable启用它/文本到列
gem'awesome_print',:require => 'ap'
gem'railroady'#运行这个命令:rake diagram:all
gembullet#除非你删除initilzer
gemreek,否则它会一直运行#run this:reek 。
gem'brakeman',:require => false#运行此命令:brakeman [appPath] -o output_file
gem'traceroute'#检查未使用和不可到达路由> rake traceroute
gem'quiet_assets'#将Log中的Asset消息取出
gem'annotate',> = 2.6.0
gemletter_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'
#gembower-rails,〜> 0.8 .3
#gem'react-rails','〜> 0.10.0.0'
#gem'react-rails','〜> 1.0.0.pre',github:'reactjs / react-rails'
#gemtherubyracer,:platforms => :ruby
#gemtherubyrhino,: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错误
#messaging
gem'邮箱'
在我的Heroku日志中,这是我发现的:
注意:服务器正在监听所有接口(0.0.0.0)。考虑使用127.0.0.1( - 绑定选项)
2014-09-07T17:20:38.089695 + 00:00 app [web.1]:=> Ctrl-C关闭服务器
2014-09-07T17:20:38.089697 + 00:00 app [web.1]:退出
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:在`block in require'
任何帮助都非常非常感谢。
从我遇到的这个问题中学到的经验很少,但首先让我们回答,然后解释一下
简短回答:
尽管取消了测试被认为会导致耙子破裂,还有其他一些事情需要删除,这是造成问题:
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是一个糟糕的决定,它可以将一个非常简单的应用程序转变为一个疯狂的amazin丛林
I have almost read every question and doc about deployment to heroku, and this is not my first time, but now in a very weird scnario when I deploy I can't create the database:
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}
It's not this:
FactoryGirl screws up rake db:migrate process
I took out everything related to Factory girl pretty much, everything in the spec file.
Not this either:
Rails 4.0.1 on Heroku, can't create database
this is my 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'
IN my Heroku Logs, this what I found:
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'
any help would be veryyy very much appreciated.
There are few lessons to be learnt from this problem that I came across, but first let's answer and then explain what was going on.
Short answer:
Despite removing the tests that was considered to cause the rake to break, there were other things left out that needed to be removed and it was causing problems:
1- In the application.rb
this was happening:
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- In seed.rb
file this was happening:
# user = CreateAdminService.new.call
# puts 'CREATED ADMIN USER: ' << user.email
The lesson:
1- Don't use auto app generators. In my case I was using #RailsComposer.
2- Bower on Rails is a bad decision, it can turn a very simple app to a crazy amazin jungle
这篇关于Rails& Heroku:PG数据库无法创建数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!