Я использую datamapper с ruby для хранения данных в определенных таблицах.
В нескольких таблицах содержится очень большое количество информации, и я хочу очистить их, когда пользователь "перестраивает базу данных" (он в основном удаляет все и повторно вычисляет данные).
Я изначально попробовал Forum.all.destroy и сделал это для всех разных таблиц, но заметил, что некоторые из них просто удалены из phpmyadmin. я могу только представить его из-за внешних ключей. Хотя я действительно не знаю, потому что моя другая таблица, которая удалила ключи, была успешно удалена. Не говоря уже о том, что id скорее всего "ноль", так что ключи не доходят до необычайно больших чисел (например, номер # 500 000).
Затем я попытался запустить его с помощью кода ниже, но он не очищает таблицы из-за ограничений внешних ключей. Я хочу заставить его работать, потому что я знаю, что я разбираюсь во всех таблицах, которые полагаются друг на друга (я только не очищаю 2 таблицы, таблицу настроек и случайную таблицу хранения, ни одна из которых не использует внешние ключи).
До сих пор я...
adapter = DataMapper.repository(:default).adapter
adapter.execute('TRUNCATE TABLE `forums`, `dates`, `remarks`');
Это было бы хорошо, если бы не синтаксис mysql. так что первое, что
Я сделал это 1 на 1 в phpmyadmin, и когда я сделал это, он сказал
Cannot truncate a table referenced in a foreign key constraint