Laravelをローカルにインストールしたはいいが、DBを用意していない!
そんな時にサクッと用意できるのがSQLiteデータベースだ。今回はその使い方を見ていく。
SQLiteはMySQL等と同じく、リレーショナルデータベースの一つで扱うのが非常に簡単らしい。元々MacにもSQLite自体が入っているみたい。
また、GUIとしてTablePlusも扱うので落としていない人は落としておこう。
TablePlus:https://tableplus.com/
SQLiteホームページ :https://www.sqlite.org/index.html
今回DBは予め用意する必要はないので、LaravelプロジェクトはComposer経由で作成しておこう。
まだ作成していない人はこちらを参考に。
database.sqliteファイルを作成する
Laravelプロジェクトを作成したら、Laravelのdatabaseフォルダの中にdatabase.sqliteというファイルを作成しよう。SQLiteは、ファイル形式のDBでこのファイルにDBの情報が書き込まれるようだ。
SQLiteを使うにはほぼこれで準備完了だ。
.envファイルを書き換える
database.sqliteファイルを用意したら、.envファイルを書き換えていこう。
Laravelはデフォルトではmysqlと接続するようになっているので、その部分をsqliteに変換していくぞ。
DB_CONNECTIONのmysqlになっている部分をsqliteにして、残りをコメントアウト、もしくは削除しておこう。
php artisan migrateコマンドを走らせる
書き換えたら、php artisan migrate
をターミナルで走らせよう。このコマンドはDBにテーブルを作成するコマンドだ。
テーブルの構造はdatabase/migrations
フォルダ以下に定義していく。Laravelプロジェクトを作成したら自動的にいくつかのmigrationsファイルが作成されているはずだ。
このコマンドをよく確認のために走らせているのは、コマンドを走らせて成功する=DBにテーブルが作成されることだからだ。
さっそく走らせよう。注意点としては、Laravelプロジェクトフォルダでしっかりコマンドを叩くことだ。artisanファイルの置き場が、Laravelプロジェクト内なので、そこで叩かないと動かないぞ。
コマンドを叩くと、successfullyと返ってくるはずだ。
DBにテーブルが作成されたのはいいけど、どうやってDBを確認すればよいのだろうか?
database.sqliteファイルを確認したら?と思うかもしれないが、残念ながらこのファイルは開くことができない。
※もしかしたら無理矢理開けるのかもしれないけど、知識ないのですいません。
そこで次で紹介するTablePlusの登場だ。
TablePlusでdatabase.sqliteを読み込む
migrationに成功したが、どうやってDBを確認すればよいのだろうか?
大きくわけて2つ方法がある。1つはコマンドラインで確認する方法。こちらはCUIと呼ばれて、コマンド操作が必須なので初心者には少し敷居が高い。
もう1つは、今回紹介するTablePlusなどのGUIを用いて確認する方法だ。こちらは見た目もわかりやすいし扱いやすいのが特徴だ。さっそく扱っていこう。DLしていない人は落としておこう。無料プランで大丈夫だ。
TablePlus:https://tableplus.com/
DLして、TablePlusを立ち上げたら以下の画面が表示されるはずだ。
わかりにくいけど、下にCreate a new connection...
と書かれているのでそれをクリックしよう。
すると、どのソフトを使うかを聞かれるのでSQLiteを選択しよう。
するとまた、ポップアップが表示されるので、名前とパスを選択してConnectボタンをクリックしよう。パスはdatabase.sqliteがある場所を選択しよう。それ以外は特に記入しなくて大丈夫だ。
connectを押すと、しっかりとmigrationsされたファイルが表示されるはずだ。
これでデータを確認しながら作業できるようになった。
まとめ
- Laravelプロジェクトを作成し、databaseフォルダ内にdatabase.sqliteファイルを作成する。
- .envファイルを修正し、
php artisan migrate
コマンドを走らせる。 - TablePlusをDLすれば、GUIでデータ構造を確認できる。
ざっとこんな感じでまとめた。TablePlusはSQLiteだけでなく、様々なデータベースに対応しているのが嬉しい。
SQLiteはMySQLより設定が面倒ではないので手軽にデータベースを用意したい人やLaravelの練習をしたい人にはいいのではないだろうか?