在Rails 4.0.0,ruby 1.9.3p392(2013-02-22修訂版39386)[x86_64-darwin10.8.0]中使用Rake 10.1.1db:在Rails 4.0.0耙過程中遷移錯誤
我正在研究Rails中的類的應用程序,我犯了一個錯誤,並刪除了在Git中所做的更改。當我去重做項目,跑耙DB遷移,我得到了以下錯誤消息:
Joses-MacBook-Air:crumblr JRV$ rails generate migration CreateHearts Post_id:integer
invoke active_record
create db/migrate/20140120235500_create_hearts.rb
Joses-MacBook-Air:crumblr JRV$ bundle exec rake db:migrate
== CreateHearts: migrating ===================================================
-- create_table(:hearts)
rake aborted!
An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: table "hearts" already exists: CREATE TABLE "hearts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "Post_id" integer) /usr/local/rvm/gems/ruby-1.9.3- p392/gems/sqlite3-1.3.8/lib/sqlite3/database.rb:91:in `initialize'
4.0.0/lib/active_record/railties/databases.rake:42:in `block (2 levels) in <top (required)>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
如何擺脫舊錶引用的?
你沒有說清楚。通過「舊錶引用」,你的意思是你想更新你的schema.rb以匹配現有數據庫中的內容,或者你想讓數據庫進入你的代碼庫期望的狀態?您是否更改了遷移的標識符(時間戳)?數據庫應該跟蹤上次運行的遷移。 – coreyward