文档没有说明有关使用迁移更改数据类型的信息。
我在数据库表中有这个列
$table->smallInteger('driverslicensetype')->nullable();
我正在保存四位数字,但当数字以0(零)开头时,例如0230,它将在DB中保存为230。这是错误的。
现在我想将此列数据类型从smallInteger更改为varchar。
我如何通过迁移来实现这一目标?
答案 0 :(得分:1)
要使用架构更改功能,您需要Doctrine DBAL:
composer require doctrine/dbal
现在您可以使用change()
:
public function up()
{
Schema::table('foo', function (Blueprint $table) {
$table->string('driverlicensetype', 4)->nullable()->change();
});
}
public function down()
{
Schema::table('foo', function (Blueprint $table) {
$table->smallInteger('driverlicensetype')->nullable()->change();
});
}
如果您更喜欢原始方法(或者如果您的SQL更具限制性,例如driverlicensetype
是外键时),请使用DB::statement
:
public function up()
{
DB::statement('ALTER TABLE foo ...');
}
// ...