sqldefは、宣言的スキーマ管理(declarative schema management)のためのツールですす。 atlas とか ridgepole とか、あるいは古くは GitDDL(あるいはGitDDLのバックエンドである SQL::Translator::Diff)のように、「理想的なDDL」を書いておくと、実際のDBのschemaと比較して「理想的なDDL」になるようにALTERなどを発行する、というツールです。
これを使いたくて、実際に小さめのプロジェクトで試しに使ってみてなかなかよかったんですが、rename機能がなくて本格導入は無理だなーと思っていたのです。まあしかし、足りない機能は実装すればよいということで、このたび無事に column / table / index のrenameに対応させました(psqldef, mysqldef, mssqldef, sqlite3defの全て)。これで大きめのプロジェクトでも導入しやすくなるはず!
入れたばかりなのでバグはあるかもしれません。問題があれば discussions に報告してもらえれば対応します。
ついでなんですが、今見ているプロジェクトではPostgreSQLのGRANTでの権限管理を多用しているので、これも対応させました(これはpsqldefのみ)。
v2.4.6 から3種のrename + grant (managed_roles
) に対応しています。
これでやっとalembic migrationから脱却できるぞ…!!