第一次尝试将我的 Rails 应用程序部署到 Heroku,我遇到了很多问题。该应用程序崩溃了,您可以查看图像中的日志:http: //i.stack.imgur.com/bsx1b.png
更糟糕的是,当我尝试在本地查看我的应用程序时,它无法在 postgreSQL 环境中运行.当我回到 database.yml 中使用 sqLite3 时,它工作得很好。我认为问题可能是除了添加 pg gem 和运行 bundle install 之外,我实际上还必须安装 postgreSQL。
我继续使用一键式安装程序(Windows 7 64 位)安装 PostgreSQL。重启后,一个简单的 rails server 或 bundle install 命令开始失败,所以我重新安装了整个 ruby & rails。
现在 rails server 命令工作正常,当我尝试在本地环境中查看我的应用程序时,它会提示不同的错误。所以现在我有 pgAdmin III 和 Rails
PG::Error
fe_sendauth: no password supplied
我试图按照这个,但我找不到“pg_hba.conf”。我猜答案是基于不同的操作系统。
现在又一次,捆绑器不工作,给我错误......
问题: 1)我是否正确使用一键式安装程序安装 postgreSQL?因为这导致我的 ROR 以某种方式“崩溃”,我不得不完全重新安装导轨。2)我想我要删除所有与postgreSQL相关的东西,重新安装Rails,一切从头开始。我必须采取哪些步骤?我看过的所有参考资料似乎都不适合 Windows 环境。
在我的 gemfile 中,我有
gem 'pg'
gem 'thin'
在我的数据库中,我有
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
development:
adapter: postgresql
encoding: utf8
database: mangfeel_development
pool: 5
timeout: 5000
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: postgresql
encoding: utf8
database: mangfeel_test
pool: 5
timeout: 5000
production:
adapter: postgresql
encoding: utf8
database: mangfeel_production
pool: 5
timeout: 5000
安装 PostgreSQL 后,我现在遇到的错误:
c:\ruby\myapp>rails server
C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems.rb:926:in `report_activate_error': Could not find RubyGem railties (>= 0) (Gem::LoadError)
from C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems.rb:244:in `activate_dep'
from C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems.rb:236:in `activate'
from C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems.rb:1307:in `gem'
from C:/RailsInstaller/Ruby1.9.3/bin/rails:18:in `<main>'
当我运行捆绑安装时:
Gem::InstallError: The 'json' native gem requires installed build tools
Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'
An error occurred while installing json (1.7.5), and Bundler cannot continue.
Make sure that `gem install json -v '1.7.5'` succeeds before bundling.
所以我将完全删除 pgAdminIII、PostgreSQL、Ruby on Rails,然后从头开始。
我认为部署不会那么难,但是从 SQLite3 迁移到 PostgreSQL 比我想象的要花费更多的时间和精力。我真的很感激这个问题的一些帮助。
-------------------------------------------------- -------------------------------------------------- --------------------
更新:重新安装一切后,我从头开始重新设置。
我检查了我的 SQLite3 版本应用程序运行良好。所以我开始设置 postgreSQL。首次设置 postgreSQL 时出现以下错误。通过设置,我的意思是编辑 config/database.yml 并安装 gem 'pg' 并删除 gem 'sqlite3'。当我尝试连接到 localhost:3000 时,出现以下错误:
ActiveRecord::ConnectionNotEstablished
经过一番研究,我发现设置数据库可能有更多步骤。所以我运行了 bundle 命令,
bundle exec rake db:setup
但是然后在控制台中,当我运行bundle exec rake db:setup时出现以下错误。
Couldn't create database for {"adapter"=>"postgresql", "host"=>"localhost", "encoding"=>"utf8", "database"=>"db/myapp_test", "pool"=>5, "timeout"=>5000}
rake aborted!
could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
c:/ruby/myapp/config/environment.rb:5:in `<top (required)>'
Tasks: TOP => db:schema:load => environment
当我尝试连接到 localhost:3000 时,我再次收到上述错误,而不是ActiveRecord::ConnectionNotEstablished。
问题:我做错了什么,我该如何解决这个问题?