Я пытаюсь использовать phinx, чтобы добавить пару связанных таблиц. Я создал свою миграцию:
<?php
use Phinx\Migration\AbstractMigration;
class CreatesCognitiveMappingTables extends AbstractMigration
{
public function up()
{
$this->table("cognitive_mapping")
->changeColumn('id', 'biginteger', ['identity' => true])
->addColumn("user_id", "biginteger", ["signed" => false])
->addColumn("participant_id", "integer")
->addColumn("session_number", "integer")
->addColumn("date_time", "datetime")
->addColumn("image_file_link", "text")
->addColumn("time", "decimal", ["precision" => 10, "scale" => 5])
->addColumn("test_trial_complete", "boolean")
->addTimestamps()
->create();
$child = $this->table("cognitive_mapping_dragdrop_results");
$child
->changeColumn('id', 'biginteger', ['identity' => true])
->addColumn("cognitive_mapping_id", "biginteger", ["signed" => false])
->addColumn("box_number", "integer")
->addColumn("correct_answer", "text")
->addColumn("given_answer", "text")
->addColumn("accuracy", "boolean")
->addTimestamps()
->create();
$child
->addForeignKey("cognitive_mapping_id", "cognitive_mapping", "id", ["delete" => "CASCADE"])
->save();
}
public function down()
{
$this->table("cognitive_mapping_dragdrop_results")->drop()->save();
$this->table("cognitive_mapping")->drop()->save();
}
}
Но когда я запускаю миграцию, я получаю сообщение об ошибке, в котором говорится, что невозможно добавить ограничение внешнего ключа:
Я пробовал различные перестановки этого, включая создание дочерней таблицы в другом файле миграции, удаление каскада, явную отмену подписи первичного ключа в родительской таблице. Все это дает мне ту же ошибку. Я что-то не вижу.
Я использую php 7.3 и версию 0.12.1 Phinx.
Любые идеи?