3 use Illuminate\Database\Migrations\Migration;
4 use Illuminate\Database\Schema\Blueprint;
5 use Illuminate\Support\Carbon;
6 use Illuminate\Support\Facades\DB;
7 use Illuminate\Support\Facades\Schema;
9 return new class extends Migration
14 public function up(): void
17 // Add API tokens table
18 Schema::create('api_tokens', function (Blueprint $table) {
19 $table->increments('id');
20 $table->string('name');
21 $table->string('token_id')->unique();
22 $table->string('secret');
23 $table->integer('user_id')->unsigned()->index();
24 $table->date('expires_at')->index();
25 $table->nullableTimestamps();
28 // Add access-api permission
29 $adminRoleId = DB::table('roles')->where('system_name', '=', 'admin')->first()->id;
30 $permissionId = DB::table('role_permissions')->insertGetId([
31 'name' => 'access-api',
32 'display_name' => 'Access system API',
33 'created_at' => Carbon::now()->toDateTimeString(),
34 'updated_at' => Carbon::now()->toDateTimeString(),
36 DB::table('permission_role')->insert([
37 'role_id' => $adminRoleId,
38 'permission_id' => $permissionId,
43 * Reverse the migrations.
45 public function down(): void
47 // Remove API tokens table
48 Schema::dropIfExists('api_tokens');
50 // Remove access-api permission
51 $apiAccessPermission = DB::table('role_permissions')
52 ->where('name', '=', 'access-api')->first();
54 DB::table('permission_role')->where('permission_id', '=', $apiAccessPermission->id)->delete();
55 DB::table('role_permissions')->where('name', '=', 'access-api')->delete();