У меня есть таблица заказов и есть sell_shipping_labels
который ссылается на orders.id
как на иностранную. Однако, когда я запускаю миграцию Laravel, я получаю ужасный код ошибки:
[Осветите\Database\QueryException]
SQLSTATE [HY000]: Общая ошибка: 1005 Неcheapbooks_test
создать таблицуcheapbooks_test
.#sql-b5b_b2a
(errno: 150 "Ограничение внешнего ключа неверно сформировано") (SQL: alter tablesell_shipping_labels
добавить ограничениеsell_shipping_labels_order_id_foreign
внешний ключ (order_id
) ссылкиorders
(id
))[Учение\DBAL\Driver\PDOException]
SQLSTATE [HY000]: Общая ошибка: 1005 Неcheapbooks_test
создать таблицуcheapbooks_test
.#sql-b5b_b2a
(errno: 150 "Ограничение внешнего ключа неверно сформировано")
Это моя таблица таблиц orders
:
Schema::create('orders', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->integer('book_id');
$table->integer('status_id');
$table->double('payment_amount')->nullable();
$table->timestamp('received_at')->nullable();
$table->timestamp('paid_at')->nullable();
$table->timestamps();
$table->softDeletes();
});
И это моя схема sell_shipping_labels
:
Schema::create('sell_shipping_labels', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('order_id');
$table->string('shippo_object_id');
$table->string('label_url');
$table->string('tracking_url');
$table->string('tracking_number');
$table->timestamp('arrived_at');
$table->timestamps();
$table->softDeletes();
$table->foreign('order_id')->references('id')->on('orders');
});
}
Теперь я перевернул интернет вверх дном, пытаясь понять проблему. Все сообщения об этой проблеме относятся ко всему тому, что таблица заказов должна быть создана ПЕРЕД таблицей с внешним ключом, но это не проблема для меня, потому что мои файлы находятся в правильном порядке.