データベースとテーブルの準備
とりあえず、/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
参考資料
