もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

MySQLのパーティションを一括削除

はじめに

こんばんは。

今日ちょっとだけ連携がうまく行かなかったことがあり、備忘録として残しておきます。

本題

今回起こったのは パーティションを作るマイグレーションRailsで失敗するということが発生しました。

自分はRailsガッツリ触ったことないのですが、Railsパーティションを扱うにはなんか色々しないとダメみたいですね。

とりあえず 今回は ローカルでの unit test時に上記のDBエラーがでてたので、ローカルに存在するパーティションテーブルを消せばいけそうです。

パーティションを削除するコマンドは以下

ALTER TABLE action_logs DROP PARTITION p202109, p202110, p202111, p202112, p202201, p202202;

でも、これだと消すマイグレーションテーブルを指定しないといけません。

ちょっと面倒です。。

インフォメーションスキーマになんかないかなぁ?と思ったらありました。

SELECT PARTITION_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'action_logs'
> p202109
> p202110
> p202111
> p202112
> p202201
> p202202

これを使ってスクリプト組めばいいかなーと思ってたのですが、もっともっと簡単なやりかたないのかな?と思って、公式調べてたらありました。

ALTER TABLE action_logs REMOVE PARTITIONING;

やっぱり公式ですね。

終わりに

今週は忙しくて Terraform読めてません。。。

明日はやるぞ!