Vagrant内でArtisanコマンドの実行とPostgreSQLの接続

Scotchboxで立てたvagrant環境にてlaravelを使用している中で、
DB利用の際のartisanコマンドが実行出来なかったので調べてみた。

artisan

そのままvagrantを実行しているローカルのディレクトリ上でartisanコマンドを実行しても仮想環境のDBへの接続が出来ないため、エラーが出てしまう。

1
2
3
4
5
6
7
8
9
10
11
$ php artisan migrate
[PDOException]
  SQLSTATE[08006] [7] could not connect to server: Connection refused
      Is the server running on host "localhost" (::1) and accepting
      TCP/IP connections on port 5432?
  could not connect to server: Connection refused
      Is the server running on host "localhost" (127.0.0.1) and accepting
      TCP/IP connections on port 5432?
  could not connect to server: Connection refused
      Is the server running on host "localhost" (fe80::1) and accepting
      TCP/IP connections on port 5432?

なので、vagrant内にSSHで入ってから実行する必要がある。
実行するディレクトリは、/var/wwwとなる。

1
2
3
$ vagrant ssh
vagrant@laravel-sample:~$ cd /var/www
vagrant@laravel-sample:/var/www$ php artisan

これでvagrant内のpostgreSQLに対してartisanを実行してテーブルの作成が出来た。

GUI接続

ついでに、vagrant内のpostgreSQLをローカルのGUI環境から確認したい場合は、接続情報のSSHの項目も設定してやることで接続が可能。

利用しているソフトがPoticoなので、その設定内容のキャプチャ。
DBの設定内容は、Scotchboxの場合。
https://github.com/scotch-io/scotch-box#postgresql

項目 内容
Host localhost
User root
Password root
Database scotchbox
SSH Host 192.168.33.10
(SSH) User vagrant
(SSH) Password vagrant

参考

初めてのLaravel 5.1 : (6) データベースの環境設定 | ララ帳
aravel.io – The Laravel Community Portal
Vagrant, PostgreSQL and pgAdmin | Snakey Code

   このエントリーをはてなブックマークに追加