Ruby on Rails/ActiveRecord и табличные разделы

Я прочитал документацию и смог найти что-нибудь, что мне помогло. Я также читал большое количество статей в блогах, но, похоже, ничто не отвечает на мой вопрос напрямую:

Можно ли управлять табличными разделами в таблице InnoDB с помощью ActiveRecord? Я бы предпочел сохранить все очень чисто, и я стараюсь избегать написания внешних скриптов, чтобы попытаться автоматизировать создание/удаление разделов с течением времени.

Ответ 1

Дополнительное решение возникло с тех пор, как я впервые задал этот вопрос. Хотя решение действительно требует использования Postgresql над MySQL или Maria, это не является большим препятствием, так как это более или менее база данных по умолчанию для Rails.

Partitioned gem на Github специально обрабатывает все механизмы секционирования красивым способом Railsy.

Ответ 2

Я не вижу, как ActiveRecord может делать такие вещи, как DROP PARTITION и REORGANIZE PARTITION. Может ли он даже вызвать хранимую процедуру? Если это так, то постройте одно, похожее на то, что находится в мой блог, и назовите его из Rails.

Ответ 3

Да, вы можете! Но я не думаю, что есть драгоценный камень, который сделает это за вас.

Чтобы выполнить управление разделами, вам нужно выполнить тяжелую работу самостоятельно и отправить команду, которую необходимо запустить в БД непосредственно через соединение, следующим образом.

ActiveRecord::Base.connection.execute("ALTER TABLE your_table drop partition p0")