##前置き
herokuをMySQLでデプロイした方向けです。
本番環境のDBを確認したいなーと思って調べているとどうやらherokuではPostgreSQLが推奨されているらしくMySQLの記事がほとんど見つかりませんでした。そこで自分の備忘録をかねてHerokuの本番DBを確認する方法(MySQL)をここに残したいと思います。
##確認方法
この記事を書く前に色々とネットで調べてみました。すると答えが載っていました!!
結論から言うとターミナルでmysql -u DB_USERNAME -h DB_HOSTNAME -pDB_PASSWORDの順番に打ち込むと
mysql >
のように出てきます。こうなれば成功です!!
。
。
。
なるほど全然わからない。
そもそもどこにUSERNAME、HOSTNAME、PASSWORDがわからない、、
そこからさらに調べているとDATABASE_URLの中身に色々と入っていることが判明。
ターミナルにてheroku configコマンドを実行すると
CLEARDB_DATABASE_URL: mysql://abcdef12345678:1pindesu4@us-cdbr-east-02.cleardb.com/heroku_3232e987654321a?reconnect=true
DATABASE_URL: mysql2://abcdef12345678:1pindesu4@us-cdbr-east-02.cleardb.com/heroku_3232e987654321a?reconnect=true
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
RAILS_LOG_TO_STDOUT: enabled
RAILS_MASTER_KEY: *******************
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE: *******************
こんな感じでいっぱい出てくると思います。(ここに乗っていなかったりここに書いてないものが表示されてることもあるかと思います。)
大切なのは
CLEARDB_DATABASE_URL: mysql://abcdef12345678:1pindesu4@us-cdbr-east-02.cleardb.com/heroku_3232e987654321a?reconnect=trueの部分です。
ここにUSERNAME、HOSTNAME、NAME、PASSWORDやらが載っています。
今回の場合
ユーザー名= abcdef12345678
パスワード= 1pindesu4
ホスト= us-cdbr-east-02.cleardb.com
データベース名= heroku_3232e987654321a
のように割り振られています。
よってターミナルにて
% mysql -u abcdef12345678 -h us-cdbr-east-02.cleardb.com -p1pindesu4
することで(一番最後の-p1pindesu4は-pの後にスペースを開けないようにしてください)
mysql >
このように無事に入ることができると思います。
あとはどのデータベースを見たいのかを選択する必要があるので SHOW コマンドを使っていきます。
mysql> SHOW DATABASES;
+------------------------+
| Database |
+------------------------+
| information_schema |
| heroku_3232e987654321a |
+------------------------+
2 rows in set (4.76 sec)
ここで先ほどheroku configで確認した
データベース名= heroku_3232e987654321aと一致するものが自分が確認したい本番DBということになります。
あとは
mysql> USE heroku_3232e987654321a;
でデータベースを選択し
mysql> SHOW TABLES;
コマンドを実行すれば
+----------------------------------+
| Tables_in_heroku_3232e987654321a |
+----------------------------------+
| ar_internal_metadata |
| favorites |
| relationships |
| schema_migrations |
| songs |
| users |
+----------------------------------+
6 rows in set (0.29 sec)
こんな感じで本番DBが確認できると思います!!
##まとめ
自分なりにまとめてみたので間違っている箇所などあれば指摘していただける嬉しいです。herokuにかかわらずDBの操作は実務で必ず使うそうなのでいろいろいじって慣れておくことが大切なのかなと思いました。