美文网首页
解决SQLite3中表已存在的问题

解决SQLite3中表已存在的问题

作者: 稻草人_b788 | 来源:发表于2018-03-05 16:34 被阅读487次

    前言

    我在搭建个人博客的过程中,遇到了问题:
    在执行rails db:migrate时出现了报错:
    SQLite3::SQLException: table "comments" already exists:
    这句话的意思时资料库中已经存在了"comments"这个表,分析原因,应该是在我之前新建一个分支用来做comment model,后来我把它直接删除了,重新开一个分支再次做comment model然后产生了冲突。

    解决办法:

    终端依次执行:
    sqlite3 db/development.sqlite3这行代码是进入sqlite3后台
    drop table table_name;这行代码是删除表,其中table_name是你要删除的表的名称
    .quit这行代码是退出sqlite3后台
    第一行命令是进入sqlite3的后台,进入sqlite3后台后,可以通过输入.help查看指令

    image
    此时,执行.tables就可以看到资料库中所有的表,比如我的资料库中的表为:
    image
    打开schema.rb也能看到对应的表:
    image

    然后执行drop table comments;就可以把comments这个表删除掉:

    image
    再次进sqlite3后台,输入.tables可以看到comments这个表已经没有了:
    image
    不过此时schema.rb中的表还没有发生变化,没有关系,因为schema.rb不是实时更新的。
    接着使用.quit退出后台,重新执行rails g model comment建立comment的modle,再执行rake db:migrate就更新资料库schema.rb,新的comments table就生成了。

    相关文章

      网友评论

          本文标题:解决SQLite3中表已存在的问题

          本文链接:https://www.haomeiwen.com/subject/ywmhfftx.html