【Laravel講座】データベースの設定

データベースの設定

※この記事は「2021年4月26日」に更新しました。

Laravel(ララベル)講座。

前回は、SQLite のインストール方法を紹介しました。

SQLiteをインストールする

【Laravel講座】SQLiteをインストールする

2019年7月10日

今回は、実際に Laravel でデータベースを使えるように設定していきたいと思います。

ぱそた
SE、Web制作、販売を経験した管理人が解説します。



データベースの設定

データベースの設定をしていきます。

Laravel は、MySQL、Postgre SQL、SQLite、SQL Server に対応しています。

今回は、SQLite を使っていきます。

データベースファイルの作成

それでは、データベースファイルを作成します。

Laravel の databaseフォルダの直下へ移動し、とりあえず以下の名前で空ファイルを作成しましょう。

database.sqlite

.envファイルの設定

それでは .envファイルの設定を行います。

データベースに関わる環境変数を修正します。

以下は、デフォルトの設定です。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

これを以下のように変更します。

DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=homestead
# DB_USERNAME=homestead
# DB_PASSWORD=secret

configフォルダの設定

config/app.php を設定します。

ここは、本来最初にやっておくべきだったかもしれませんが、書いていなかったので、紹介しておきます。

'timezone' => 'UTC',

これを以下のように変更します。

'timezone' => 'Asia/Tokyo',

マイグレーションファイルを作成する

マイグレーションファイルを作成します。

コマンドプロンプトから以下のコマンドを実行します。

php artisan make:model Test --migration

これで Model が作成されて、マイグレーションファイルも作成されます。

database/migrations の中にマイグレーションファイルが作成されているので、中を見ていきましょう。

Migration を継承したクラスの部分のコードです。

class CreateTestsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('tests', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('tests');
    }
}

upメソッドと downメソッドがあります。

upメソッドは、マイグレーションで行いたい処理、downメソッドは、巻き戻すための処理です。

upメソッドの $table->bigIncrements(‘id’) の下に以下を追加してみます。

$table->string('title');
$table->text('content');

次に以下のコマンドを実行します。

php artisan migrate

これでテーブルが作成されます。

最後に SQLite で実際に作成されているかどうか確認してみます。

sqlite3 database\database.sqlite

続いて以下コマンドを実行します。

.schema tests

すると、下記のように表示されるはずです。

マイグレーション

ちゃんとカラムが作成されていることがわかります。

最後は .quit でデータベースを切断しましょう。

最後に

いかがでしょうか。

なんとか試しながら操作している感じですが、徐々に慣れていきたいと思います。