さくさく開発にかかせないのが、データベースのマイグレーション。 今回は、Flywayを使って、GradleのタスクとしてFlywayのマイグレーションが実行できるようにします。FlywayはJava向けのDBマイグレーションフレームワークの一つで、個人的にはシンプルで扱いやすいかなと思って気に入ってます。機能面での比較は、Flywayのトップページの下の方にあります。強いてマイナス面を挙げるなら、ロールバック(=スキーマのダウングレード)ができない点くらいでしょうか(その辺の見解はFAQで言及されています)。 GradleとFlywayの連動を行うにはいくつか選択肢があります。素直にgradle-flyway-pluginを使ったり、GradleからAntタスクを呼び出す方法なども検討しましたが、最終的に、FlywayのコアAPIを使ってカスタムタスクを独自に作る方法を採用しました。 とい
Background 突然引き継ぐことになった案件では、フレームワークにデータベースマイグレートの仕組みがなく、 ORM も使っていなかったので、後付でデータベースマイグレーションを用意してあげる必要があった。 Java で書かれた Flyway を使うと、いくつかのルールを覚え、ベタの SQL を書くだけで、運用で発生する基本的なマイグレートを実現出来たので、使い方をメモ。 環境 Ubuntu 10.04 MySQL 5.1 Flyway 2.2.1 Java(JDK7) Flyway は Java のコードから呼び出せたり、 Ant/Maven/Gradle といったツールと連携出来たりと jvm 系エコシステムと親和性が高い。今回は、非 Java システムということと、僕自身 Java には疎いので、コマンドライン版の Flyway を利用。 Installation Install
今回関わったプロジェクトで、テーブルスキーマの構成管理を行うのにMyBatisMigrationを使ったため、備忘録もかねて利用方法を残しておく。 機能紹介 マイグレーションツールとは? テーブルスキーマを管理するツール。 どの環境にどこまでのSQL適用したかわからなくなるのを防いでくれる。 Java系ではFlyway,Liquibaseなどが有名。 なぜ導入したのか? テーブル数、スキーマ変更ともに多いプロジェクトだったため、 評価で利用したDB状態を本番環境で手で作り上げるのは不安があったから。 (手作業だと絶対リリースミスすると思っていた。 なぜMyBatisMigrationなのか? FlywayやLiquibaseも調べたが、同一スキーマに自分たちの管理外のテーブルが含まれている場合でも"安心して"使えるのがMyBatisだったことが最大の理由。 なぜ安心できないかというと、 f
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く