«Общая ошибка :1005 Невозможно создать таблицу» Использование сборки схемы Laravel и внешних ключей

По сути, у меня та же проблема, что и у этого парня, за исключением префикса таблицы. Поскольку у меня нет префикса таблицы, его фикс не работает.http://forums.laravel.com/viewtopic.php?id=972

Я пытаюсь создать таблицу с помощью Laravel Schema Builder, например:

Schema::create('lessons', function($table)
{
    $table->increments('id');
    $table->string('title')->nullable();
    $table->string('summary')->nullable();
    $table->timestamps();
});

Schema::create('tutorials', function($table)
{
    $table->increments('id');
    $table->integer('author');
    $table->integer('lesson');
    $table->string('title')->nullable();
    $table->string('summary')->nullable();
    $table->string('tagline')->nullable();
    $table->text('content')->nullable();
    $table->text('attachments')->nullable();
    $table->timestamps();
});

Schema::table('tutorials', function($table)
{
    $table->foreign('author')->references('id')->on('users');
    $table->foreign('lesson')->references('id')->on('lessons');
});

Проблема в том, что когда я запускаю этот код (в маршруте /setup ), я получаю следующую ошибку:

SQLSTATE[HY000]: General error: 1005 Can't create table 'tutorials.#sql-2cff_da' (errno: 150)

SQL: ALTER TABLE `tutorials` ADD CONSTRAINT tutorials_author_foreign FOREIGN KEY (`author`) REFERENCES `users` (`id`)

Bindings: array (
)

Основываясь на сообщениях в Интернете и ограниченной доступной документации о том, как настроить отношения Laravel Eloquent, я не уверен, что делаю неправильно...

usersуже существует, и у него есть поле id, равное auto_increment. Я также настраиваю свои модели с правильными отношениями(belongs_toиhas_many), но, насколько я могу судить, проблема не в этом --, а в настройке базы данных. БД — это InnoDB.

Что именно я делаю неправильно с внешним ключом?

32
задан Andrew M 10 August 2012 в 01:23
поделиться