MySQL + Rails:错误:150“外键约束不正确”

我试图迁移我的Rails MySQL数据库,我收到以下错误:

ActiveRecord :: StatementInvalid:Mysql2 :: Error:无法创建表developmentcomments (错误:150“外键约束形成错误”):CREATE TABLE commentsid int AUTO_INCREMENT PRIMARY KEY, comment varchar(255), user_id int, post_id int, created_at datetime NOT NULL, updated_at datetime NOT NULL,INDEX index_comments_on_user_iduser_id ),INDEX index_comments_on_post_idpost_id ),CONSTRAINT fk_rails_03de2dc08c FOREIGN KEY( user_id )REFERENCES usersid ),CONSTRAINT fk_rails_2fd19c0db7 FOREIGN KEY( post_id )REFERENCES postsid ))ENGINE = InnoDB

以下是我的迁移:

 class CreateUsers < ActiveRecord::Migration[5.0] def change create_table :users do |t| t.string :first_name t.string :last_name t.string :linkedin_username t.string :facebook_username t.string :facebook_id t.string :profile_image t.string :title_image t.string :connection t.boolean :team t.boolean :active t.boolean :admin t.string :email t.string :password_digest t.timestamps end end end class CreateComments < ActiveRecord::Migration[5.0] def change create_table :comments do |t| t.string :comment t.references :user, foreign_key: true t.references :post, foreign_key: true t.timestamps end end end class CreateCategories < ActiveRecord::Migration[5.0] def change create_table :categories do |t| t.string :name t.text :description t.timestamps null: false end end end class CreatePosts < ActiveRecord::Migration[5.0] def change create_table :posts do |t| t.string :title t.string :description t.references :category, foreign_key: true t.references :user, foreign_key: true end end end 

如果有人能在这里给我一个想法,我将非常感激。 我一直在谷歌搜索解决方案一段时间,但无法找到与Rails相关的任何内容。 谢谢!

我刚刚找到了这个问题的答案。 我的错误与我的post表迁移最后一次有关。 我的注释表迁移引用了post table id父字段。 一旦我重新生成了注释表迁移并删除了之前的注释表迁移,一切都很顺利。