Я новичок в 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();
});
}
Насколько я знаю, это не возможно, а не намерение миграции. Я думаю, что есть два варианта решения этой проблемы:
Если вы не работаете, вы можете изменить сценарий миграции и добавить дополнительный столбец вручную, используя mysql:
alter table users add column family varchar(255);
Если вам нужно обновить производительную базу данных, вам следует добавить второй сценарий миграции, добавив только дополнительный столбец, например:
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');
});
}
Других решений пока нет …