如何基于 Laravel 中的模型制作迁移文件



如果我有一些模型,具有非默认功能(如软删除或自定义 ID 名称(,并且想要从中创建迁移文件,其中包含所有这些属性,该怎么办?所以这是我的模型:

class Test extends Model
{
use SoftDeletes;
protected $primaryKey = 'test_id';
protected $table = 'my_flights';
protected $dates = ['deleted_at'];
}

我希望我的迁移文件基于它。但是当我使用命令php artisan make:migration create_test(s)_table(我尝试了testtests(也带有参数--create--table时,我得到了迁移文件,因为没有任何模型:

class CreateTestTable extends Migration
{
public function up()
{
Schema::create('test', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}  ...

在正常开发中,迁移先于模型详细信息。 迁移包含架构定义,而不是模型。雄辩模型遵循活动记录模式,不包含列的类型定义。 如果遵循命名约定,则无需指定有关模型中的表或列的任何内容。

有关 make:migration 命令的任何内容都不会从现有模型或数据库表中提取任何内容。 有一个包支持从现有数据库架构创建迁移:https://github.com/Xethron/migrations-generator 但不是从模型本身。

最新更新