LoginSignup
2
1

More than 5 years have passed since last update.

Flyway で SQL*Plus 向けのデータパッチを流したら怒られた件。

Last updated at Posted at 2014-12-04

手元に Oracle がないのですが、会社で開発環境に Flyway を導入しようと思い試していたところ、以下の様な SQL 文を Flyway に食わせると ORA エラーが出ました。
(投げている SQL によって ORA-01735 だったり ORA-00935 だったり…)

Patch.sql
INSERT INTO hoge VALUES (4, "Fuga")
/
ALTER TABLE foo DROP COLUMN bar
/
commit
/

会社でこれまで作っていたデータパッチは SQL*Plus や SI Object Browser で流すことを想定していたのですが、 Flyway ではこれじゃダメで、1文ずつセミコロンで区切って、スラッシュでのバッファの実行は要らないようです。

これを変えられないのでどうしようかといろいろ考えたのですが、結局はスラッシュのみの行をセミコロンのみの行に置換したパッチを作ることで回避。
自分は Gradle をつかって Flyway を走らせていたので、以下のように対処。

build.gradle
apply plugin: 'flyway'

(中略)

task copyPatch(type: Copy) << {
    from 'fromdir'
    into 'distdir'
    filter { line ->
        line.replaceAll '^/$' ';'
    }
}

flywayMigrate.dependsOn copyPatch
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1