Обновление структуры таблицы без отката в Laravel 5.1

Я новичок в Laravel. Я использую миграцию для создания таблиц в базе данных, но я не хочу migrate:rollback обновить мою таблицу.

Я хочу применить изменения в моей старой базе данных без потери текущих данных.

Старая миграция

public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password', 60);
$table->rememberToken();
$table->timestamps();
});
}

Новая миграция

   public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('family');
$table->string('email')->unique();
$table->string('password', 60);
$table->rememberToken();
$table->timestamps();
});
}

1

Решение

Насколько я знаю, это не возможно, а не намерение миграции. Я думаю, что есть два варианта решения этой проблемы:

  1. Если вы не работаете, вы можете изменить сценарий миграции и добавить дополнительный столбец вручную, используя mysql:

    alter table users add column family varchar(255);
    
  2. Если вам нужно обновить производительную базу данных, вам следует добавить второй сценарий миграции, добавив только дополнительный столбец, например:

    public function up()
    {
    Schema::table('users', function(Blueprint $table)
    {
    $table->string('family')->after('user_id');
    });
    }
    
    public function down()
    {
    Schema::table('users', function(Blueprint $table)
    {
    $table->dropColumn('family');
    });
    }
    
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]