0

最近、アプリにとを追加しましたが、正しく機能させるには実行する必要がありDeviseます。すでに作成したリンクの移行ファイルがありますが、実行するとどういうわけか競合しますCanCanRails 3.2.3rake db:migraterake db:migrate

==  CreateLinks: migrating ====================================================
-- create_table(:links)
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "links" already exists: CREATE TABLE "links" ("id"INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "url" varchar(255), "description" var
char(255), "created_at" datetime NOT NULL, "points" integer, "updated_at" dateti
me NOT NULL) 

私は走ってみrake db:migrate:resetましたが、これは私の状況を助けるために何もしていないようです。新しいgemのdb移行をまだ実行できません。どうすればこれを回避できますか?どういうわけかリンクの移行を省略できますか?

4

1 に答える 1

2

■移行を実行する前に、手動でリンク テーブルを作成しましたか? どういうわけか、移行がデータベースと同期していないようです。

データベース内のデータに関心がない場合は、rake db:drop最初に を実行してから、 を実行できますrake db:migrate。これにより、データベース内のすべてのテーブルが吹き飛ばされ、すべての移行が最初からやり直されます。

既存のデータベース テーブルを維持する必要がある場合は、create_table :linksステートメントをステートメントでラップできますunless table_exists? :links

于 2012-06-12T22:14:48.077 に答える