I am trying to migrate my Rails MySQL database and I am getting the following error:
ActiveRecord::StatementInvalid: Mysql2::Error: Can't create table
development.comments(errno: 150 "Foreign key constraint is incorrectly formed"): CREATE TABLEcomments(idint AUTO_INCREMENT PRIMARY KEY,commentvarchar(255),user_idint,post_idint,created_atdatetime NOT NULL,updated_atdatetime NOT NULL, INDEXindex_comments_on_user_id(user_id), INDEXindex_comments_on_post_id(post_id), CONSTRAINTfk_rails_03de2dc08cFOREIGN KEY (user_id) REFERENCESusers(id) , CONSTRAINTfk_rails_2fd19c0db7FOREIGN KEY (post_id) REFERENCESposts(id) ) ENGINE=InnoDB
Here are my migrations:
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
I would be very thankful if someone could give me an idea here. I have been googling for solutions for a while now but could not find anything on this related to Rails. Thank you!