无法使用水龙头

时间:2016-06-25 22:21:23

标签: ruby-on-rails ruby postgresql sqlite

我试图将我的rails数据库从sqlite3迁移到postgresql,所以我可以推送到heroku。我也试图迁移数据 这是我的gemfile:

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.5'
# Use sqlite3 as the database for Active Record

# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc

# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'
gem "twitter-bootstrap-rails"
# Use Unicorn as the app server
# gem 'unicorn'
gem 'therubyracer'
gem 'bootstrap-sass'
gem 'yaml_db'
gem 'will_paginate', '~> 3.1.0'
gem 'sinatra'
gem 'taps', '>= 0.3.22'
gem "tilt", '~> 1.4.1'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do

    gem 'byebug'
end

group :development do

    gem 'web-console', '~> 2.0'
    gem 'sqlite3'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
    gem 'spring'
end
gem "sequel_pg", :require=>'sequel'
group :production do

    gem 'rails_12factor'
    gem 'puma'

end

我还更改了我的database.yml文件以迁移到postgres

development:
  adapter: postgresql
  encoding: unicode
  database: gainxp_development
  pool: 5
  username: sam
  password: pass
  host: localhost


# 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: unicode
  database: gainxp_test
  pool: 5
  username: sam
  password: pass
  host: localhost

production:
  adapter: postgresql
  encoding: unicode
  database: gainxp_production
  pool: 5 
  username: sam
  password: pass
  host: localhost

我运行以下命令启动我的水龙头服务器并正确启动:

taps server sqlite://db/development.sqlite3 sam pass -p $PORT 

在另一个终端我跑:

sudo taps pull postgres://sam:pass@localhost/gainxp_development http://sam:pass@localhost:$PORT

这给了我这个错误:

Failed to connect to database:
  Sequel::DatabaseConnectionError -> PG::ConnectionBad: FATAL:  database "gainxp_development" does not exist

我的pg_hba.conf文件如下

# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by Unix domain socket
local   all             postgres                                trust


# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

我已经在这几周试图迁移我的数据库了。谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

我不完全确定问题或解决方案可能是什么,但我会说你尝试以下方法:

  1. 在您的Gemfile中添加gem 'pg'
  2. 运行bundle install
  3. 运行rake db:setuprake db:migrate
  4. 运行taps命令