Я использую 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
любая идея, как это сделать в рубине? Я попытался запустить каждую команду отдельно в приложении и ничего не удалял. Затем я попытался запустить их по очереди в phpmyadmin по порядку, и он по-прежнему говорит # 1701 - Не удается обрезать таблицу, на которую ссылается ограничение внешнего ключа – Tallboy
. он работал ... он был только там за миллисекунду, прежде чем он снова добавил мои данные, и я не поймал его на самом деле усечением. благодаря! – Tallboy
Я усекал дочерние таблицы, но даже тогда это не удается при удалении родительской таблицы. В любом случае, я использовал взломанный отключение проверки внешнего ключа. – inquisitive