Ошибка MySQL при создании внешнего ключа с миграцией Laravel

У меня установлено приложение Laravel, и я использую Sentry 2 для аутентификации пользователей. У меня есть модель под названием « Post вместе со стандартным часовым столом User . Я хотел бы, чтобы у пользователя было много сообщений, а почта для пользователя. Чтобы отразить это в моей схеме базы данных, мне нужно создать ограничение внешнего ключа между posts и users .

Миграция, которую я написал, следующая:

 public function up() { Schema::table('posts', function(Blueprint $table) { $table->integer('user_id')->after('id')->nullable(); $table->foreign('user_id')->references('id')->on('users'); }); } 

После запуска с php artisan migrate , я получаю ошибку MySQL в командной строке:

[Осветите \ Database \ QueryException]
SQLSTATE [HY000]: Общая ошибка: 1005 Невозможно создать таблицу 'blog.dev. # Sql-3bb_2d' (errno: 150) (SQL: alter table posts add constraint posts_user_id_foreign external key ( user_id ) ссылается на users ( id ))

Сначала я думал, что эта ошибка возникла из-за того, что столбец первичного ключа у users определен иначе, чем мой пользовательский столбец user_id , однако оба они определены как int(10) .

Из Google я узнал, что эта ошибка может быть вызвана различием двух определений столбцов, однако, похоже, это не так.

Solutions Collecting From Web of "Ошибка MySQL при создании внешнего ключа с миграцией Laravel"