0

user-microposts という新しいブランチを作成しました。モデルの作成で何かを台無しにしました。次を使用して最後のコミットに戻ろうとしました:

git reset --hard cb166caa1c70004f77eed6229168b06ad249a4ba

返された:

HEAD is now at cb166ca Eliminate an unnecessary assignment

そのため、移行をやり直そうとしましたが、次のエラーが発生しました。

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

前のコミットに戻せば何事もなかったかのように思っていたのでビックリしました。

そのため、マスター ブランチに戻り、変更を加えたブランチを削除しました。

次に、新しいブランチを作成し、別のモデルを作成して rake db:migrate を実行しようとしました。繰り返しますが、同じエラーが発生しました

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

最近、マイクロポストを含むファイルを手動で削除しようとしました。再びそのような運はありません。

同じエラーが発生し続けます。git ブランチおよび/または git リセットの両方の目的がこのシナリオを防ぐと思ったので、非常に混乱しています。どんな助けでもいただければ幸いです

4

1 に答える 1

1

データベースがソース管理下にあることは珍しいことです。したがって、ソースを元に戻すと、データベースとソースの間に矛盾が生じる可能性があります。ソリューションにはいくつかのオプションがあります。

  1. データベースを削除して再作成する
  2. ソースに一致するようにデータベースをロールバックします

上記の両方について、典型的な「rake db」タイプのコマンドを使用します。

于 2013-04-04T15:19:51.630 に答える