読了: 約 8 分
表題の通りですが、defaultはsqlite3が入っているrailsですが、最初からpostgresqlを入れてherokuにdeployする際に発生した問題についてメモ
herokuのdev centerにdefaultの設定方法とか詳細書いてあるので、そちらを参照して頂きたいのですが、
新規のrailsアプリ立ち上げの際にdefaultのdbをpostgreに設定する
$ rails new projectname -d postgresql
そうすると下記の様にデフォルトでconfig/database.ymlの設定が変化します。
development: adapter: postgresql encoding: unicode database: no-cancel_development pool: 5 username: no-cancel password: # Connect on a TCP socket. Omitted by default since the client uses a # domain socket that doesn't need configuration. Windows does not have # domain sockets, so uncomment these lines. #host: localhost #port: 5432 # Schema search path. The server defaults to $user,public #schema_search_path: myapp,sharedapp,public # Minimum log levels, in increasing order: # debug5, debug4, debug3, debug2, debug1, # log, notice, warning, error, fatal, and panic # The server defaults to notice. #min_messages: warning # 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: no-cancel_test pool: 5 username: no-cancel password: production: adapter: postgresql encoding: unicode database: no-cancel_production pool: 5 username: no-cancel password:
gemfileも上記コマンドで生成した場合は下記のようにpgになっています。
//gemfile gem 'pg'
databaseの名前は上記で設定した際のprojectname_development,_test等のようになっています。
ここまででpostgreの設定は終了
db作成でのエラー対応
$ rake db:create $ rake db:migrate
上記のコマンドを打つとエラーが下記のように出ます。
しかしdbディレクトリは存在しています。
could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
そこで一応再確認
$ psql psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
解決としては一旦postgreをデフォルトでsetするのをやめてgemfileで分岐するようにしました。
productionはpgでdevelopmentはsqlite3という事で。
それでまぁ無事に動いたようなのでこれからごりごり開発して行きます。
$ git push heroku master
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 738 bytes | 0 bytes/s, done.
Total 6 (delta 4), reused 0 (delta 0)
-----> Ruby app detected
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using Bundler version 1.3.2
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Using rake (10.1.0)
Using i18n (0.6.9)
Using multi_json (1.8.2)
Using activesupport (3.2.12)
Using builder (3.0.4)
Using activemodel (3.2.12)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.5)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.3)
Using tilt (1.4.1)
Using sprockets (2.2.2)
Using actionpack (3.2.12)
Using mime-types (1.25.1)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.4.4)
Using actionmailer (3.2.12)
Using arel (3.0.3)
Using tzinfo (0.3.38)
Using activerecord (3.2.12)
Using activeresource (3.2.12)
Using coffee-script-source (1.6.3)
Using execjs (2.0.2)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.3)
Using json (1.8.1)
Using rdoc (3.12.2)
Using thor (0.18.1)
Using railties (3.2.12)
Using coffee-rails (3.2.2)
Using jquery-rails (3.0.4)
Using pg (0.17.0)
Using bundler (1.3.2)
Using rails (3.2.12)
Installing rails_serve_static_assets (0.0.1)
Installing rails_stdout_logging (0.0.3)
Installing rails_12factor (0.0.2)
Using sass (3.2.12)
Using sass-rails (3.2.6)
Using uglifier (2.3.2)
Your bundle is complete! It was installed into ./vendor/bundle
Bundle completed (8.14s)
Cleaning up the bundler cache.
-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
Running: rake assets:precompile
Compiled jquery.js (4ms) (pid 717)
Compiled jquery_ujs.js (0ms) (pid 717)
Compiled application.js (14ms) (pid 717)
Compiled application.css (1ms) (pid 717)
Compiled jquery.js (4ms) (pid 717)
Compiled jquery_ujs.js (0ms) (pid 717)
Compiled application.js (14ms) (pid 717)
Compiled application.css (1ms) (pid 717)
Asset precompilation completed (10.82s)
-----> WARNINGS:
You have not declared a Ruby version in your Gemfile.
To set your Ruby version add this line to your Gemfile:
ruby '2.0.0'
# See https://devcenter.heroku.com/articles/ruby-versions for more information.
-----> Discovering process types
Procfile declares types -> (none)
Default types for Ruby -> console, rake, web, worker
-----> Compiled slug size: 21.0MB
-----> Launching... done, v6