Wordpress dbDelta. Ошибка при создании FOREIGN KEY?
Добрый день.
Создаю свои таблицы для работы плагинов. Но столкнулся с проблемой создания связанных ключей. Мне нужно создать ключ с каскадным удалением от зависящей таблицы. Нашел что для wordpress стандартом считается dbDelta, в котором будет вызываться SQL запрос создания таблицы и worpress сам будет мутировать таблицу в mysql.
сделал примерно такой код
$sql = "CREATE TABLE wp_office_info (
id INTEGER NOT NULL AUTO_INCREMENT,
name TEXT,
val INTEGER,
id_office INTEGER,
UNIQUE KEY id (id),
FOREIGN KEY (id_office) REFERENCES wp_office(id) ON DELETE CASCADE
);"
При первом создании связь создается и все хорошо работает. Но когда ключил define('WP_DEBUG', true); то увидел такие строчки:
Ошибка базы данных WordPress: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY (id_office) REFERENCES wp_office(id) ON DELETE CASCADE' at line 1]
ALTER TABLE wp_office_info ADD COLUMN FOREIGN KEY (id_office) REFERENCES wp_office(id) ON DELETE CASCADE
Т.е. он думает что это поле и пытается сделать код для добавления такого поля (хотя при первом создании таблицы все хорошо проходит и создается как надо.
Как вы проводите миграции (если они есть) и как правильно решить проблему с внешними ключами?