迁移失败:PG :: ProtocolViolation Rails

我刚刚更新到rails4并意识到我的db角色和数据库不知何故没有设置。

所以我删除了数据库并重新创建了app_development数据库和角色。

现在我正在尝试运行rake db:migrate并且它失败并出现以下错误:

== DeviseCreateUsers: migrating ============================================== -- create_table(:users) -> 0.0081s -- add_index(:users, :email, {:unique=>true}) -> 0.0031s -- add_index(:users, :reset_password_token, {:unique=>true}) -> 0.0030s == DeviseCreateUsers: migrated (0.0144s) ===================================== rake aborted! An error has occurred, this and all later migrations canceled: PG::ProtocolViolation: ERROR: bind message supplies 1 parameters, but prepared statement "a1" requires 0 : INSERT INTO "schema_migrations" ("version") VALUES ('20130815235601') Tasks: TOP => db:migrate 

我尝试手动为不同的表运行迁移,并为每个表提供相同的迁移。

这是一个抱怨的示例迁移文件:

 class DeviseCreateUsers  false, :default => "" t.string :encrypted_password, :null => false, :default => "" ## Recoverable t.string :reset_password_token t.datetime :reset_password_sent_at ## Rememberable t.datetime :remember_created_at ## Trackable t.integer :sign_in_count, :default => 0 t.datetime :current_sign_in_at t.datetime :last_sign_in_at t.string :current_sign_in_ip t.string :last_sign_in_ip ## Confirmable # t.string :confirmation_token # t.datetime :confirmed_at # t.datetime :confirmation_sent_at # t.string :unconfirmed_email # Only if using reconfirmable ## Lockable # t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts # t.string :unlock_token # Only if unlock strategy is :email or :both # t.datetime :locked_at ## Token authenticatable # t.string :authentication_token t.timestamps end add_index :users, :email, :unique => true add_index :users, :reset_password_token, :unique => true # add_index :users, :confirmation_token, :unique => true # add_index :users, :unlock_token, :unique => true # add_index :users, :authentication_token, :unique => true end end 

我认为一种方法是删除迁移并重新创建它。

但我不确定这样做的确切步骤。

任何人都可以帮助我完成迁移运行的确切步骤。 我不介意放弃db等,因为项目是开发阶段,并且我需要担心的prod数据/架构不多

谢谢。 Rails 4.0 PG 9.3.0


Update1:​​在schema_mgrations中看不到任何行:

 select * from schema_migrations; version --------- (0 rows) 

Update2:手动插入相同的值工作正常!

 INSERT INTO "schema_migrations" ("version") VALUES ('20130815235601'); INSERT 0 1 select * from schema_migrations version ---------------- 20130815235601 

(1排)

更新3

我手动为不同的表运行迁移,并且每个表都失败,所以它不是任何特定迁移的问题。

我也试图恢复到Rails 3.2.14并且仍然面临同样的问题。

感到迷失在这里,并坚持4-5天吧!!