Как сделать файл миграции на основе модели в Laravel - PullRequest
0 голосов
/ 14 сентября 2018

Что если у меня есть какая-то модель с функциями не по умолчанию (например, мягкое удаление или пользовательское имя идентификатора) и я хочу создать из нее файл миграции, в котором будут все эти свойства? Итак, вот моя модель:

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 (я пробовал оба test и tests) также с параметрами --create или --table, я получаю файл миграции, так как не было никакой модели:

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

1 Ответ

0 голосов
/ 15 сентября 2018

При нормальной разработке миграция предшествует деталям модели. Миграция содержит определения схемы, а не модель. Модели Eloquent следуют шаблону активной записи и не содержат определений типов для столбцов. Если вы соблюдаете соглашения об именах, вам не нужно ничего указывать в таблице или столбцах модели.

Ничего в команде make: миграции ничего не извлечет из существующих моделей или таблиц базы данных. Существует пакет для поддержки создания миграций из существующей схемы базы данных: https://github.com/Xethron/migrations-generator, но не из самой модели.

...