我正在尝试将我的rails数据库从sqlite3迁移到postgresql,所以我可以推送到heroku。我也试图迁移数据 这是我的gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.5'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
gem 'pg'
# 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
gem 'taps', '>= 0.3.22'
gem "tilt", '~> 1.4.1'
# 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 'will_paginate', '~> 3.1.0'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
end
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
这给了我这个错误:
Receiving schema
Unable to fetch tables information from http://sam:pass@0.0.0.0:8080. Please check the server log.
我的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
当我访问sinatra服务器的水龙头正在运行时,我会在白色背景上显示以下内容:
Taps >= v0.3.22 is required for this server
我几周都在试图迁移我的数据库。谢谢你的帮助
答案 0 :(得分:0)
没关系。我通过运行sequel -C sqlite://db/development.sqlite3 postgres://sam:pass@localhost/gainxp_development
修复了问题,一切正常。 自我五