0

我创建了一个名为 user-microposts 的新分支。我开始在创建模型时搞砸了。我尝试使用以下命令返回上一次提交:

git reset --hard cb166caa1c70004f77eed6229168b06ad249a4ba

这回馈了:

HEAD is now at cb166ca Eliminate an unnecessary assignment

所以我尝试重做 Migrate,这给了我这个错误:

SQLite3::SQLException: table "microposts" already exists: CREATE TABLE "microposts"
....

我很惊讶,因为我想如果我回到之前的提交,就像什么都没发生一样。

所以我恢复到 master 分支并删除了我进行任何更改的分支。

然后我创建了一个新分支,并尝试创建另一个模型并运行 rake db:migrate。我又遇到了同样的错误

SQLite3::SQLException: table "microposts" already exists: CREATE TABLE "microposts"
....

我最近尝试手动删除其中包含微帖子的任何文件。再次没有这样的运气。

我不断收到同样的错误。我认为 git branch 和/或 git reset 的目的都会阻止这种情况,所以我很困惑。任何帮助,将不胜感激

4

1 回答 1

1

您的数据库受源代码控制是不寻常的。因此,如果您还原您的源,您可能会在数据库和源之间出现不一致。该解决方案有几个选项:

  1. 删除数据库并重新创建它
  2. 回滚数据库以匹配源

对于上述两种情况,您将使用典型的“rake db”类型命令。

于 2013-04-04T15:19:51.630 回答