ひよっこエンジニアの雑多な日記

なんとかWeb系のエンジニアをやっています。

vagrant環境でrake db:migrateが失敗する

vagrant環境でRailsでrake db:migrateを実行する際にエラーが出て時間を食ってしまったので備忘録
使用しているDBMSpostgresql

$ rake db:migrate  
rake aborted!
ActiveRecord::NoDatabaseError: FATAL:  role "vagrant" does not exist
PG::ConnectionBad: FATAL:  role "vagrant" does not exist

どうやらvagrantなんてロールはいないよとのこと。。。
なのでvagrantロールを作成してやることに。

$ sudo su - postgres  
$ psql  
$ create role vagrant with createdb login  
  
$ \du  
Role name | Attributes  | Member of   
-----------+-------------+-----------  
postgres  | Superuser   | {}
       : Create role   
         Create DB    
vagrant   | Create DB   | {}

とりあえずDB作れる権限だけ与えて、vagrantロールを作成 postgresqlからexitして再びmigrate

$ rake db:migrate  
rake aborted!</span>  
ActiveRecord::NoDatabaseError: FATAL:  database "app_development" does not exist  
PG::ConnectionBad: FATAL:  database "app_development" does not exist

今度はapp_developmentなんてDBは存在しないよとのこと。。。
今度はDBを作成してやることに。

$ sudo su - postgres  
$ psql  
$ create database app_development  
CREATE DATABASE

これでDBも作成できたので、またexitしてmigrate

$ rake db:migrate  
== 20151103022733 CreateProjects: migrating ===================================
  -- create_table(:projects)  
  -> 0.0277s
== 20151103022733 CreateProjects: migrated (0.0278s) ==========================

無事migrateができた。
なんかすごい初歩的なことに時間を取られた。。。
前はこんな設定せずにサクッとrailsが使えた記憶があったせいか、なおさら時間がかかった。。。

今度はherokuなんかにあげるときに問題が起きそうな予感。。。
とりあえずmigrateできたのでガシガシアプリ作りに励みます。