需求:通过写迁移文件更新user表中 topic 字段类型,从原来的varchar到json。
因为无法直接修改成json数据类型,只能采用先删除在创建的方式。
迁移文件代码如下:
?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUserTable extends Migration{
/**
* 运行迁移
*
* @return void
*/
public function up()
{
Schema::create('user', function (Blueprint $table) {
if (Schema::hasColumn('topic')) {
$table->dropColumn('topic');
}
$table->json('topic')->comment('主题');
});
}
/**
* 撤销迁移
*
* @return void
*/
public function down()
{
//
}
}
执行迁移文件报错,提示topic这个字段已经存在。
但是很显然上面已经删除了,但是 删除创建分开两次执行,一切正常。
猜想:可能是迁移文件执行类型与实务,一起提交才成功。后续有机会验证
以上这篇laravel解决迁移文件一次删除创建字段报错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:- Laravel框架数据库迁移操作实例详解
- laravel 执行迁移回滚示例
- Laravel5.5 数据库迁移:创建表与修改表示例
- 关于laravel 数据库迁移中integer类型是无法指定长度的问题
- Laravel5.7 数据库操作迁移的实现方法
- laravel 数据迁移与 Eloquent ORM的实现方法
- 详细Laravel5.5执行表迁移命令出现表为空的解决方案
- Laravel中数据迁移与数据填充的详细步骤
- Laravel实现数据库迁移与支持中文的填充
- Laravel 的数据库迁移的方法
- Laravel 5框架学习之数据库迁移(Migrations)
- 使用git迁移Laravel项目至新开发环境的步骤详解