41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php
|
|
|
|
use Hyperf\Database\Schema\Schema;
|
|
use Hyperf\Database\Schema\Blueprint;
|
|
use Hyperf\Database\Migrations\Migration;
|
|
use Hyperf\DbConnection\Db;
|
|
|
|
return new class extends Migration
|
|
{
|
|
/**
|
|
* Run the migrations.
|
|
*/
|
|
public function up(): void
|
|
{
|
|
Schema::create('companies', function (Blueprint $table) {
|
|
$table->bigInteger('id')->primary()->comment('公司ID(来自远程)');
|
|
$table->string('name')->unique()->comment('公司名 英文');
|
|
$table->string('label')->nullable()->default('null')->comment('公司名 中文');
|
|
$table->boolean('enabled')->default('true')->comment('激活状态');
|
|
$table->jsonb('ext')->nullable()->comment('额外信息');
|
|
$table->timestampsTz();
|
|
|
|
// 索引
|
|
$table->index('enabled', 'idx_companies_enabled');
|
|
$table->index('created_at', 'idx_companies_created_at');
|
|
$table->index('updated_at', 'idx_companies_updated_at');
|
|
});
|
|
|
|
// 为 JSONB 字段创建 GIN 索引,支持高效的 JSON 查询
|
|
Db::statement('CREATE INDEX idx_companies_ext ON companies USING GIN (ext)');
|
|
}
|
|
|
|
/**
|
|
* Reverse the migrations.
|
|
*/
|
|
public function down(): void
|
|
{
|
|
Schema::dropIfExists('companies');
|
|
}
|
|
};
|