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

需求:通过写迁移文件更新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解决迁移文件一次删除创建字段报错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • laravel 解决paginate查询多个字段报错的问题

    用laravel 框架想实现一个分页接口,返回数据表中其中一部分字段 $list = DB::table('booklist_table')->orderBy('create_time','asc')->paginate($size,['id','title','author','image'])->toJson(); return json_decode($list,true); 结果运行报错 "SQLSTATE[42000]: Syntax error or access

  • laravel 执行迁移回滚示例

    Laravel鼓励敏捷.迭代的开发方式,我们没指望在第一次就获得所有正确的. 我们对于自己编写和设计数据库,可以通过迁移文件,不断的重复去测试. 但是有些时候我们需要去执行迁移回滚 (1) 建议使用 执行上一次迁移回滚 如果是本地开发(一般都在前期开发) 执行:php artisan migrate:rollback(迁移文件在/database/migrations下) 如果是在文件夹下的回滚呢? 执行:php artisan migrate:rollback --path=/database

  • Laravel 5框架学习之数据库迁移(Migrations)

    database migrations 是laravel最强大的功能之一.数据库迁移可以理解为数据库的版本控制器. 在 database/migrations 目录中包含两个迁移文件,一个建立用户表,一个用于用户密码重置. 在迁移文件中,up 方法用于创建数据表,down方法用于回滚,也就是删除数据表. 执行数据库迁移 复制代码 代码如下: php artisan migrate #输出 Migration table created successfully. Migrated: 2014_1

  • Laravel5.5 数据库迁移:创建表与修改表示例

    数据库迁移是数据库的版本管理,要使用数据库迁移,需要在.env文件中连接好数据库(不多说).laravel本身已经存在user表和password_resets表的迁移了,因此,执行 php artisan migrate 便会在数据库中创建好user表.password_resets表和migrations表.migrations表是版本记录表. 命令执行的其实是 database\migration 下的迁移文件.迁移文件中调用的方法会替我们执行数据库操作(建表).每个文件的命名对应迁移创建

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

    需求:通过写迁移文件更新user表中 topic 字段类型,从原来的varchar到json. 因为无法直接修改成json数据类型,只能采用先删除在创建的方式. 迁移文件代码如下: <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateUserTable extends Migration{ /** * 运行迁移 * * @return v

  • 解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]

    Laravel5.x运行迁移命令创建数据表:php artisan migrate报错. Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_uniqu

  • 解决Linux中ROOT用户删除普通用户报普通用户已登录问题

    问题产生背景:今天在Linux某普通用户openam_jxedu上配置系统,因为文件误删,我想删除系统安装文件,重新解压安装,但是考虑到该系统生成的配置文件可能会对后来的某些功能造成影响,因此便想删除该普通用户--openam_jxedu,然后重新创建该用户,然后再进行系统的重新安装. 问题描述:我在root用户下,使用userdel -r openam_jxedu 指令删除该用户,但是却发现报如下错误. 我本地确定已经关闭了openam_jxedu用户的连接.因为可能是其他主机在连接opena

  • 解决django model修改添加字段报错的问题

    关于django models中添加字段的一个小节,记录下 django的models中已经写好了字段,可是后面我又想在添加一些字段,于是就在models中添加了字段 ,发现报错了 报错的类型: 字段重复了 不知道的列 : 最后解决的方法 : 到models的目录下打开文件 ,直接把所需的字段添加到第一次编译的文件中 , 重新执行数据库的迁移 ,如果依然有报错,提示有未知的列 ,就查看数据库 ,那个列缺失,就把列给添加上 添加未知的列 至此,重新执行迁移 ,妥妥的成功了 ! 以上这篇解决djan

  • 解决python3中自定义wsgi函数,make_server函数报错的问题

    #coding:utf-8 from wsgiref.simple_server import make_server def RunServer(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return '<h1>Hello, web!</h1>' if __name__ == '__main__': httpd = make_server('localho

  • 解决IDEA中maven导入jar包一直报错问题

    查      看:   File------>Project Structure--------->Libraries如下面没有maven所引入的jar包则为该错误[1] 错误原因:  是导入的module错误,应该导入maven的module 解      决:  File------>Project Structure--------->Modules------------->选择中间项目---------->选择红色的减号(因为要重新导入module),保证现在

  • 解决koa2 ctx.render is not a function报错问题

    最近在学习使用koa2,在尝试用koa2复写之前用express写的一个入口文件的时候发现命令行报错ctx.render is not a function 项目路径如下 app.js是之前用express写的入口文件 koa.js是用koa2复写的入口文件 view是前端页面文件夹,使用的模板引擎是pug 报错时koa.js代码如下 //使用koa复写入口文件 const Koa = require('koa'); const Router = require('koa-router'); c

  • Spring整合Mybatis 扫描注解创建Bean报错的解决方案

    目录 Spring整合Mybatis 扫描注解创建Bean报错 springboot+mybatis使用注解方式,出现错误创建dao层bean Spring整合Mybatis 扫描注解创建Bean报错 情景: LZ在整合Spring 和Mybatis 的时候,整合之后部署到tomcat报错 报错信息: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name

  • 解决spring mvc 返回json数据到ajax报错parseerror问题

    最近使用ajax接收spring mvc传过来的json数据时总是出现parseerror的错误,错误源码如下: 前端: $.ajax({ type: 'POST', url: "groupFunctionEdit", dataType: 'json', contentType: "application/json", data: JSON.stringify(functiondata), success: function(data){ alert('数据加载成功

随机推荐