私はFlyway DB Migrationsに関する質問があります。同じDBスキーマを扱う複数のプロジェクト(マイクロサービス)を一般的に管理する方法。各プロジェクトのマイグレーション・マイグレーション・スクリプトは、他のプロジェクトによって変更されている場合は開始できません。彼らは同じ文書やベストプラクティスを持っていますか?単一スキーマと複数のプロジェクトを使用したフライウェイ移行
答えて
これが価値があることは、これが私たちがしたことです。スキーマは複数のプロジェクトによって共有されていたので、そのスキーマを維持するタスクを持つ1つのプロジェクトによってスキーマが管理されていました。スキーマの作成とメンテナンスの集中化には、単一の軌跡があるという点で他の利点がありました。変更のためにいくつかのプロジェクトをスキャンする必要はありません。
私は正直なところ、これが最適なソリューションだと思います。私はflywayがプロジェクト間スキーマ依存関係管理を持っているとは思わない。
この個別のプロジェクトには、Flywayの設定と移行ファイルのみが含まれていましたか、またはすべてのアプリケーションSQL文(通常のSELECTなど)をこの中央プロジェクトに移動しましたか? –
私たちはこれを行う過程にあります。私たちには、スキーマの作成/管理を管理する1つの中心的なプロジェクトがあり、他のプロジェクトは、独自のフライウェイバージョン管理を介して、すべて独自の関数作成を処理します。これは、他のプロジェクトがスキーマバージョンをチェックするテーブルの名前を変更し、migrateのベースラインをtrueに設定することによって行われます。私たちはspring/flyway-db設定を使用していますので、最初に加えて各プロジェクトに以下を追加するだけです。application.properties
flyway.baselineOnMigrate=true
flyway.table=schema_verison_*<some_other_identifier>*
私はあなたの質問が明示的に春の設定をspecifiyなかったけど、私は、これはあなたがフライウェイを使用しているかは関係ないように設定することができると信じています。私は自分自身で質問をしていたときに答えを投稿したかったので、あなたのSOの質問は一番の結果でした。私の答えは誰かがトラックを助けてくれるかもしれないと思いました。
- 1. Doctrine2とPostgreSQLを使用した複数のDBスキーマと移行
- 2. NGINXを使用した単一ドメイン上の複数のLaravelプロジェクト
- 3. フライウェイを使用してスキーマを複製できますか?
- 4. フライウェイ:1回のトランザクションで複数の移行を実行する
- 5. 複数行と単一行
- 6. フライウェイ移行ステータス `outOfOrder`?
- 7. フライウェイを使用して異なるdbs間の移行
- 8. フライウェイの移行は、Gradleの
- 9. フライウェイの検証と今後の移行
- 10. 1つのスキーマの複数のフライウェイ・メタデータ・テーブル
- 11. Laravel複数のプロジェクトを単一のパッケージ
- 12. 単一クエリVS複数クエリ:実行時間とリソースの使用
- 13. Jenkinsを使用したフライウェイ
- 14. 複数のプロジェクトを単一ルートのアーティファクトとして公開
- 15. 単一のAS3プロジェクトの複数のターゲットデバイス
- 16. 単一のソリューションで複数のMVCプロジェクト
- 17. 複数のプロジェクトからの単一アセンブリ
- 18. 複数の行を単一の行として返します
- 19. group_concatを使用した単一クエリ内の複数のテキストフィールド
- 20. jqueryを使用した単一イベントの複数のコントロール
- 21. ポートマッピングを使用した単一ホストへの複数のURL?
- 22. LINQを使用した複数リポジトリまたは単一リポジトリ
- 23. Visual Studioで単一アプリケーション用に複数のプロジェクトから単一インストーラを作成
- 24. powershellを使用して、複数の行を含むCSV単一列を単一行に変換します。
- 25. Eclipseを使用した複数のプロジェクト
- 26. Laravelの移行を使用して単一の設定ファイルからdbスキーマを管理する
- 27. SpringブートアプリケーションでFlywayを使用した複数のデータソースの移行
- 28. 複数のデータベースを使用したDjangoの移行
- 29. 複数のファイルとサブディレクトリを単一のディレクトリのバットに移動
- 30. Gradleのリフレッシュにフライウェイの移行を実行すると、
各マイクロサービスは、独自のデータを管理し、個別のDBスキーマを持つことが理想的です。これは悪い習慣であり、サービス間でDBスキーマを共有するためのマイクロサービスアーキテクチャのルールを破ります。 – sezerug
DBスキーマを1つのモジュールで管理(有効な移行)する必要がありますが、多くのモジュールで共有できます。共有DBを持つマイクロサービスアーキテクチャは新しいものではなく、私は何千もの用途で広く使われているアーキテクチャだと考えています。 – user3808122