Laravel迁移更改以使列为空 [英] Laravel Migration Change to Make a Column Nullable
本文介绍了Laravel迁移更改以使列为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用未签名的user_id
创建了迁移.如何在新迁移中编辑user_id
使其也成为nullable()
?
I created a migration with unsigned user_id
. How can I edit user_id
in a new migration to also make it nullable()
?
Schema::create('throttle', function(Blueprint $table)
{
$table->increments('id');
// this needs to also be nullable, how should the next migration be?
$table->integer('user_id')->unsigned();
}
推荐答案
Laravel 5现在支持更改列;这是官方文档中的示例:
Laravel 5 now supports changing a column; here's an example from the offical documentation:
Schema::table('users', function($table)
{
$table->string('name', 50)->nullable()->change();
});
来源: http://laravel.com/docs/5.0/schema#changing-列
Laravel 4不支持修改列,因此您需要使用另一种技术,例如编写原始SQL命令.例如:
Laravel 4 does not support modifying columns, so you'll need use another technique such as writing a raw SQL command. For example:
// getting Laravel App Instance
$app = app();
// getting laravel main version
$laravelVer = explode('.',$app::VERSION);
switch ($laravelVer[0]) {
// Laravel 4
case('4'):
DB::statement('ALTER TABLE `pro_categories_langs` MODIFY `name` VARCHAR(100) NULL;');
break;
// Laravel 5, or Laravel 6
default:
Schema::table('pro_categories_langs', function(Blueprint $t) {
$t->string('name', 100)->nullable()->change();
});
}
这篇关于Laravel迁移更改以使列为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文