Я использую 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