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

とあるプログラミングスクールで働くひよっこエンジニアが覚えたことや悲しみを記すブログ

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!
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できたのでガシガシアプリ作りに励みます。