LaravelのDBをMySQLからSQLiteに簡単に変更

こんにちわ!ぼらです!(@bora_sns)

今日はLaravelのDBをデフォルトのMySQLからsqliteに変更する方法についてです。

今月から始まる仕事で使うためLaravelを全体的に学習中なのですが、学習中の流れでLaravelのDBをMySQLからSQLiteに変更する必要があったので、その方法についてご紹介いたします!めちゃくちゃ簡単で驚きました。

Ruby+Railsは経験があって、以前からRailsろLaravelはすごく似てるよとは聞いてはいたのですが、実際に触り始めると確かにものすごく似ていると感じました。そもそもMVCという概念がRails特有のものなのかな?と思っていたので(笑)

MVCやマイグレーション、ルーティング、ディレクトリ構造、そして大体使うファイルがコントローラーやViewファイル、ルーティング、マイグレーションファイルなどRailsとほぼほぼ同じという(笑)そういった点でLaravelは抵抗もなくかなり入りやすかったです。

DBをMySQLからSQLiteに変更

思ってたよりすごく簡単だったよ

今回はLaravelのDBを「MySQL」から「SQLite」に変更する手順を紹介します!

Laravelは元々標準でMySQL、PostgeSQL、SQLite、SQL Serverなどに対応していて設定ファイルまで既に用意されているので「何を使うか?」を指定するだけで簡単にDBをチェンジする事が可能になっています!
※今回は「windows」が対象です。

SQLiteの用意

インストールの必要すらない、DLして移動させるだけだよ

公式サイトからSQLiteをダウンロード+インストールしましょう

Precompiled Binaries for Windows という所にアップロードされています。私は64bitなので「sqlite-dll-win64-x64-3300100.zip」をダウンロードしました。

ダウンロードファイルを解凍すると「sqlite3.dll」というファイルがあるのでそのsplite3.dllファイルをWindows > system32フォルダの中に移動させましょう!

これだけでSQliteが使えるようになります。

DB Browser for SQLiteのインストール

DB操作を手動で容易に行えるツールだよ

この段階でもコマンドを使えば操作は可能なのですが、今回は「DB Browser for SQLite」というDB操作が視覚的に分かりやすく操作が容易になるソフトがあるので利用してみたいと思います!

公式サイトから「Download」をクリック。
(ここ一年程で画面が結構変わっているで利用した事がある人は違和感あるかも?)

Windows の所から「DB Browser for SQLite – Standard installer for 64-bit Windows」をクリック(自分の環境に合ったものを選んで下さい)

ダウンロードが完了したらそのままインストール。 特に変更する必要はないので画面の流れに沿って進めてください。簡単にインストールできるはずです。

※自分はインストールしたのに、PC画面左下にある「スタート」から名前で探しても、「最近追加されたもの」で確認しても「DB Browser for SQLite」がありませんでした(笑)

なのでデフォルトのインストール先である「C:\Program Files\DB Browser for SQLite」から「DB Browser for SQLite.exe」を直接起動させました。

データーベースファイルを新規作成

これでもかという程簡単だべ

データーベースファイルを新規作成
DB Browser for SQLiteの立ち上げ画面

DB Browser for SQLiteの操作で簡単にデータベースファイルを新規作成しちゃいましょう!ソフトを立ち上げると画面左上に「New Database」というボタンがあります。

クリックすると「どこにDBファイルを作成しますか?」と聞いてくるので、プロジェクトフォルダ内の「databaseフォルダ内」に作成します。名前は今回は「database.sqlite」としましょう!

データーベースファイルを作成すると、そのままテーブルを作成する画面が表示されるので試しにテーブルも好きな値を入れて作成しちゃいましょう!
※今回はこのテーブル作成部分は割愛させていただきます。

Lavavel内のDB設定ファイルを編集

え?これだけ?

Laravelで使用するデーターベースの情報はconfig > database.phpファイルに「connections」という配列で全てまとめられています。このファイルで変更する箇所は2つ!これだけでデーターベースの設定は完了です。

① ‘default’ => env(‘DB_CONNECTION’, ‘sqlite‘),


‘sqlite’ => [
 ’driver’ => ‘sqlite’,
   ‘url’ => env(‘DATABASE_URL’),
   ‘database’ => env(‘DB_DATABASE’, database_path(‘database.sqlite‘)),
   ‘prefix’ => ”,
   ‘foreign_key_constraints’ => env(‘DB_FOREIGN_KEYS’, true),
],

.envの環境変数の設定

ネットで調べるとここで上手くいかない人も結構いるみたい

しかしもう一つだけしておかなければいけない設定があります。
それが「環境変数」の設定です。

プロジェクトフォルダの直下にある「.env」を編集します。
ファイルの中にある下記2点を変更してください。

DB_CONNECTION=sqlite
DB_DATABASE=database/database.sqlite(DBファイルのパスを指定)

特に問題がなければここまでで問題なく機能すると思います!
これで上手くいかない場合は下記の5つの項目の先頭に「#」をつけてコメントアウトしてみてください。

#DB_HOST
#DB_PORT
#DB_DATABASE
#DB_USERNAME
#DB_PASSWORD

まとめ

laravel内に元々設定ファイルが用意されてる点がめっちゃ便利だね

いかがでしたでしょうか?

今回はLaravelのDBをデフォルトの「MySQL」から「SQLite」に変更する手順をご紹介しました。

  • SQLiteの用意
  • DB Browser for SQLiteのインストール
  • データーベースファイルを新規作成
  • Lavavel内のDB設定ファイルを編集
  • .envの環境変数の設定


自分もまだまだ触り始めたばかりですが、触っていて楽しいフレームワークですよねLaravelもRailsも(*^-^*)