全体の構造は下記のようになっています。
1. Laravelプロジェクトを作成
Laravelプロジェクトが未作成の場合、以下のコマンドを実行してプロジェクトを作成します。
bashcomposer create-project --prefer-dist laravel/laravel project-name
cd project-name
2. MySQLでデータベースを作成
MySQLにログインしてデータベースを作成します。
MySQLにログイン
bashmysql -u username -p
(username はMySQLのユーザー名、-p はパスワード入力のためのオプションです。)
データベースの作成
以下のコマンドを実行して、新しいデータベースを作成します。
sqlCREATE DATABASE database_name;
例: laravel_dbという名前のデータベースを作成する場合
sqlCREATE DATABASE laravel_db;
データベースの確認
作成したデータベースを確認するには以下のコマンドを使用します。
sqlSHOW DATABASES;
MySQLから退出するには次のコマンドを使用します。
sqlEXIT;
3. .envファイルの設定
Laravelプロジェクトディレクトリ内の .env ファイルを編集し、以下を設定します。
envDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db # 作成したデータベース名
DB_USERNAME=username # MySQLユーザー名
DB_PASSWORD=password # MySQLユーザーのパスワード
4. 必要なPHP拡張を確認
MySQL用のPDO拡張がインストールされていることを確認します。
bashphp -m | grep pdo_mysql
未インストールの場合、以下を実行します。
- Ubuntu:
sudo apt-get install php-mysql - Mac (Homebrew):
brew install php - Windows:
php.iniを編集してextension=pdo_mysqlを有効にします。
5. マイグレーションを実行
Laravelのマイグレーション機能を使用してデータベーステーブルを作成します。
マイグレーションファイルを作成
bash
// ファイル名:create_テーブル名_table この書式でないと作れない。
// テーブル名はModelの複数形 但し、モデル作成時のオプション-mで一緒に作る方が楽
//php artisan make:model ModelName -m マイグレーションファイルも作られる。
php artisan make:migration create_テーブル名_table
app/database/migrationsにファイル名のマイグレーションファイルが作成されます。
詳細はさらに下の方に記載
マイグレーションを実行
マイグレーションファイルの内容でテーブルを作成
bashphp artisan migrate
デフォルトで作成されるテーブル
migrate コマンドを実行すると、以下のテーブルが作成されます。
users: ユーザー情報password_resets: パスワードリセット用failed_jobs: 失敗したジョブを記録personal_access_tokens: APIトークン用
6. モデル作成 (オプション)
Laravelでデータを操作する場合は、モデルを作成します。
bashphp artisan make:model ModelName
モデルと同時にマイグレーションを作成する場合:
bashphp artisan make:model ModelName -m
マイグレーションファイル:
2025_01_28_144325_create_modelname_table.phpが作成される。
作られるmodelファイル名を使い、日付_ID(数値)_create_単数名_table.phpの形で
単数名+小文字で自動でファイル作に組み込まれる。
オプション -mを付けなければ、手動で名前を付けなければならず、その場合はmodelファイル
の複数形となる。
この名前の規則を作る事で、modelファイルとテーブルが紐ずく。
7. データベース操作の確認 (Tinkerを使用)
LaravelのTinkerを使ってデータベース操作を確認できます。
bashphp artisan tinker
Tinker内で以下のようにクエリを実行して確認します。
phpModelName::create(['column_name' => 'value']);
これで、LaravelプロジェクトでMySQLデータベースを使用する準備が整います。
これ以降にデーターベースに各種のテーブルを作る作業になります。
Laravelでデータベースのテーブルを作成するためには、「マイグレーション」
という機能を利用します。
以下は、テーブルを作成するための一連のコマンドです。
1. マイグレーションファイルを作成
マイグレーションファイルを生成するには以下のコマンドを使用します。
bashphp artisan make:migration create_table_name_table
例: usersテーブルを作成する場合
bashphp artisan make:migration create_users_table
このコマンドを実行すると、database/migrations ディレクトリ内に
マイグレーションファイルが生成されます。
テーブル操作のモデルと一緒に作る場合は、コマンドオプションが良いphp artisan make:model ModelName -m
2. マイグレーションファイルを編集
生成されたマイグレーションファイルを開きます。ファイル名はタイムスタンプを含んでおり、
例えば以下のようになります。
2024_01_01_123456_create_users_table.php
ファイル内の up メソッドでテーブルの構造を定義します。
例: usersテーブルの場合
phppublic function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id(); // プライマリキー
$table->string('name'); // ユーザー名
$table->string('email')->unique(); // ユニークなメールアドレス
$table->timestamp('email_verified_at')->nullable(); // メール確認日時
$table->string('password'); // パスワード
$table->rememberToken(); // トークン
$table->timestamps(); // created_at, updated_at
});
}
3. マイグレーションを実行
以下のコマンドを実行してマイグレーションを適用し、テーブルをデータベースに作成します。
bashphp artisan migrate
正常に実行されると、データベースに定義したテーブルが作成されます。
4. テーブル構造を変更する場合
テーブルの構造を変更する必要がある場合、新たにマイグレーションを作成します。
例: usersテーブルにカラムを追加する場合
bashphp artisan make:migration add_column_to_users_table --table=users
作成されたマイグレーションファイルの up メソッドにカラムを追加するコードを記述します。
phppublic function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('profile_image')->nullable(); // プロフィール画像カラムを追加
});
}
その後、以下のコマンドでマイグレーションを再度実行します。
bashphp artisan migrate
5. テーブルの削除 (オプション)
テーブルを削除する場合、マイグレーションファイルの down メソッドを記述します。
例: usersテーブルを削除
phppublic function down()
{
Schema::dropIfExists('users');
}
マイグレーションをロールバックして削除を実行します。
bashphp artisan migrate:rollback
これらのコマンドを利用して、Laravelで簡単にデータベーステーブルを作成および管理できます。
あとは記述方法


