6

Flywayは、複数のデータベースをサポートするアプリケーションでの実装に適していますか

お客様が何を使用しているかはわかりません。MySQL、Postgres、Oracleのいずれかである可能性があります。Flywayを使用して、新しいバージョンのアプリケーション用にデータベースを移行できますか?

4

2 に答える 2

8

質問が次の場合:Flywayは、サポートするデータベース全体にDDL抽象化レイヤーを提供しますか?答えはノーです。

これは、移行ツールでサポートされている最小公分母だけでなく、基盤となるデータベースの全機能を利用できるようにするための、意識的な設計上の決定でした。

ユースケースでは、データベースごとに異なる移行スクリプトを提供できます。しかし、それらは非常に似ているはずです。

移行スクリプトを複製する可能性がなく、最小公分母のアプローチで生きることができる場合は、ユースケースにより適している可能性のあるLiquiBaseを参照してください(XMLで生きることができる場合)

于 2011-09-07T10:45:09.583 に答える
0

jOOQの解析接続を使用できます。これは、ターゲットJDBC接続をラップし、入力DDLを任意のターゲット方言に変換できます(あまり凝っていなく、ベンダー固有でない場合)。Flywayは、この変換JDBCプロキシを認識していないため、認識している必要はありません。SQLトランスレータのオンラインバージョンはここで見ることができます。たとえば、入力SQLがMySQL固有の場合:

create table t (i int primary key auto_increment);

出力は次のようになります。

-- Oracle
create table T (
  I number(10) generated by default as identity(start with 1) not null,
  primary key (I)
);

-- SQL Server
create table T (
  I int identity(1, 1) not null,
  primary key (I)
)

-- PostgreSQL
create table T (
  I int generated by default as identity not null,
  primary key (I)
)

-- PostgreSQL 9.4
create table T (
  I serial4 not null,
  primary key (I)
)

免責事項:私はjOOQの背後にある会社で働いています。

于 2021-08-20T07:49:00.767 に答える