以下是一些示例代码:
/**
* 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时,该列保持可空,并且我有一个不完美的上/下迁移关系。什么是解决这个问题的最佳实践解决方案?
答案 0 :(得分:2)
我建议这样做的唯一方法是运行DB::statement()
方法。类似于以下内容
public function down() {
DB::statement('ALTER TABLE `orders` MODIFY `user_id` INTEGER UNSIGNED NOT NULL;');
}