Laravel 动态创建 mysql 数据库表

有时我们需要动态创建数据库表;如定期备份表 backup-2023-11 , 此时用数据库迁移就不合适了,可以在代码中动态创建,代码如下:

use Illuminate\Support\Facades\Schema;

$tableName = 'backup-2023-11';
# 先检测该表是否已存在
if (!Schema::connection('mysql_backup')->hasTable($tableName)) {
    # 创建表
    Schema::connection('mysql_backup')->create($tableName, function ($table) {
        $table->bigInteger('id')->default(0)->comment('id')->primary();
        $table->timestamps();
        $table->softDeletes();
        $table->string('identity')->default('')->comment('用户身份标识');
        $table->tinyInteger('status')->default(0)->comment('状态');
        $table->index(['identity']);
    });
}