有时我们需要动态创建数据库表;如定期备份表 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']);
});
}