2015-05-16 2 views
1

Вот некоторые примеры кода:Как я могу изменить столбец «не null» в Laravel 5?

/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    Schema::table('orders', function(Blueprint $table) 
    { 
     $table->integer('user_id')->unsigned()->nullable()->change(); 
    }); 
} 

/** 
* Reverse the migrations. 
* 
* @return void 
*/ 
public function down() 
{ 
    Schema::table('orders', function(Blueprint $table) 
    { 
     $table->integer('user_id')->unsigned()->change(); 
    }); 
} 

Первая часть работает отлично. В основном, я беру существующий столбец user_id и изменяю его так, чтобы он был нулевым. Работает отлично.

Однако, когда я запускаю migrate: rollback, столбец остается нулевым, и у меня есть несовершенное отношение миграции вверх/вниз. Каково наилучшее решение для решения этой проблемы?

ответ

2

Единственный способ, я предлагаю сделать это, чтобы запустить метод DB::statement(). Что-то вроде следующего

public function down() { 
    DB::statement('ALTER TABLE `orders` MODIFY `user_id` INTEGER UNSIGNED NOT NULL;'); 
} 
Смежные вопросы