当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel解决迁移文件一次删除创建字段报错的问题

发布: 来源: PHP粉丝网  添加日期:2022-01-17 10:37:55 浏览: 评论:0 

今天小编就为大家分享一篇laravel解决迁移文件一次删除创建字段报错的问题,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

需求:通过写迁移文件更新user表中 topic 字段类型,从原来的varchar到json。

因为无法直接修改成json数据类型,只能采用先删除在创建的方式。

迁移文件代码如下:

  1. <?php 
  2.    
  3. use Illuminate\Database\Schema\Blueprint; 
  4. use Illuminate\Database\Migrations\Migration; 
  5.    
  6. class CreateUserTable extends Migration{ 
  7.   /** 
  8.    * 运行迁移 
  9.    * 
  10.    * @return void 
  11.    */ 
  12.   public function up() 
  13.   { 
  14.     Schema::create('user'function (Blueprint $table) { 
  15.       if (Schema::hasColumn('topic')) { 
  16.         $table->dropColumn('topic'); 
  17.       } 
  18.       $table->json('topic')->comment('主题'); 
  19.     }); 
  20.   } 
  21.    
  22.   /** 
  23.    * 撤销迁移 
  24.    * 
  25.    * @return void 
  26.    */ 
  27.   public function down() 
  28.   { 
  29.     // 
  30.   } 

执行迁移文件报错,提示topic这个字段已经存在。

但是很显然上面已经删除了,但是 删除创建分开两次执行,一切正常。

猜想:可能是迁移文件执行类型与实务,一起提交才成功,后续有机会验证。

Tags: laravel迁移文件

分享到: