データベースとテーブルの準備

とりあえず、/ahoにLaravelのファイル一式があると仮定します。データベースはSQLiteを使うものとします。まず/aho/.envを以下のように変更します。

 DB_CONNECTION=sqlite
 #DB_HOST=127.0.0.1
 #DB_PORT=3306
 #DB_DATABASE=laravel
 #DB_USERNAME=root
 #DB_PASSWORD=

次にSQLiteのデータベースを/aho/database配下に作成します。

$ cd /aho/database
$ touch database.sqlite

データベース名を変えたいときは、.envファイルに以下を追記する。

DB_DATABASE=<データベースファイルへの絶対パス>

次に以下のコマンドを打ち、マイグレーションを行う。データベースファイルにデータベースに対してアプリ作成に必要なテーブルが生成される。

$ cd /aho
$ php artisan migrate

独自テーブルを作る

次に独自テーブルを作ります。まず、テーブル作成用のマイグレーションファイルを作成します。

$ cd /aho
$ php artisan make:migration create_table
   INFO  Migration [database/migrations/2023_05_15_014353_create_table.php] created successfully.

/aho/database/migrations/2023_05_15_014353_create_table.phpが作成されたマイグレーションファイルです、ここにテーブルの作成などの処理を記述します。

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        //-- テーブルを作るときはSchema::createで!
        Schema::create('T_AHO', function (Blueprint $table) {
            $table->increments('ID'); //-- 自動加算
            $table->integer('OtherID'); //-- 数値型
            $table->text('Comment'); //-- 文字列型
        });
        //-- Viewを作るときは、DB::statementでSQL直打ち
        DB::statement(
          'CREATE VIEW V_AHO as select OtherID from T_AHO' .
        );
  }
    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('T_AHO');
        Schema::dropIfExists('V_AHO');
    }
};

以下のコマンドを用いてマイグレーションします。エラーが出ていなければ成功です。

$ php artisan migrate

   INFO  Preparing database.

  Creating migration table ................................................... 15ms DONE

   INFO  Running migrations.

  2014_10_12_000000_create_users_table ....................................... 15ms DONE
  2014_10_12_100000_create_password_reset_tokens_table ........................ 7ms DONE
  2019_08_19_000000_create_failed_jobs_table ................................. 14ms DONE
  2019_12_14_000001_create_personal_access_tokens_table ...................... 21ms DONE
  2023_05_15_014353_create_table ............................................. 86ms DONE

参考資料

https://qiita.com/sano1202/items/6021856b70e4f8d3dc3d