OS: Ubuntu 14.04
Rails: 3.2.18
Ruby: 2.15
Ich habe eine Rails-Anwendung geerbt, und ich habe einige Probleme mit der Migration.Was könnte dazu führen, dass die Rails-Migration fehlschlägt
Wenn ich versuche, die neueste Migration zu laufen, erhalte ich die folgende Fehlermeldung:
== CreateBillingComments: migrating ==========================================
-- create_table(:billing_comments, {:id=>false})
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Table 'billing_comments' already exists:
CREATE TABLE `billing_comments`
Die Tabelle billing_comments existiert, aber das Problem ist, dass ich nicht die Zeichenfolge billing_comments überall in jedem der Quelle finden Codedateien (einschließlich Migrationsdateien, Ansichten, Controller, Modelle usw.).
Die Tabelle wird nicht verwendet, daher möchte ich sie und alle Verweise darauf im Code löschen. Meine Sorge ist, dass, wenn ich einfach die Tabelle lösche, ich das Problem nur teilweise gelöst habe.
Ich suchte auch nach CreateBillingComments, vergeblich.
Lauf rake db: schema: dump ein neues schema.rb hergestellt, mit den folgenden darin:
create_table "billing_comments", :force => true do |t|
t.string "ticket_id"
t.text "content"
t.string "user_id"
t.string "slug"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
Aber das ist der einzige Ort, wo jetzt billing_comments erscheint.
Woher könnte diese Information kommen?
Die Migrationsdatei für diese Tabelle existiert nicht. Ich habe es bereits in der Quelle gesucht und kann es nicht finden – EastsideDeveloper
Ok, sollte nicht egal sein, ist es möglich, dass eine Migration einmal existierte und gelöscht wurde oder nicht an die Quelle gebunden. So oder so kam der Tisch irgendwie hin. Sie können die Neuerstellung der Tabelle überspringen, indem Sie eine Wache verwenden, außer table_exists? : billing_comments' wie in meiner Antwort oben. –
Wie viele Migrationen haben Sie? Ist 'billing_comments' zumindest in deinem' schema.rb'? –