問題タブ [flyway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
5481 参照

database - 本番データベースでの Flyway 統合

「ユーザー」テーブルにすでに十分な数の行がある実稼働データベースがあります。フライウェイの Web サイトからの次のステートメントを検討してください。

Flyway によって埋められていない既存のデータベースがある場合は、次のようにします。

  • 現在の状態を再作成し、低いバージョン番号を与える初期移行スクリプトを作成します。
  • flyway:init を使用してメタデータ テーブルを作成し、このスクリプトを現在のバージョンとして設定します。

Flyway を使用してデータベース内のスキーマとさまざまな定数を管理したいのですが、V1__Base_version.sql に現在の実稼働ユーザーのアカウント情報を含めたくありません。特に、アカウント情報が SCM に保存されていることを考慮してください。ただし、これらの手順を正しく理解していれば、V1__Base_version.sql を使用して「[my] 現在の状態を再作成」する機能が必要になります。

では、スキーマと定数だけで最初の移行を作成しても問題ないのでしょうか? それとも、ワークステーションのデータベースは本番環境のものと 100% 一致する必要がありますか?

0 投票する
6 に答える
37247 参照

maven - フライウェイ構成に maven pom.xml のプロパティ ファイルを使用できますか

ここでは、ドライバー、URL、およびユーザーについて言及したくありません。私はすでにabc.propertyonを持っていsrc/main/resourcesます。ここでそのファイルをどのように使用できますか?

0 投票する
2 に答える
419 参照

flyway - Flyway-1.7:分岐に対処するための回避策? (フライウェイ138号)

Flywayは、データベースの更新 (移行とも呼ばれます) を自動化するための非常に優れたツールです。ただし、バージョン 1.7 以降では、完全に直線的な移行シーケンスに依存しています。この仮定は、すでに新しいものを開発している間に修正を提供しなければならない実稼働システムがある場合、すぐに無効になります。FAQは、これが実稼働システム自体の問題ではないことを正しく主張していますが、既に開発ブランチにある開発および/または QA システムがある場合は、実稼働バージョンの修正から帯域外で移行を実行する必要があります。 .

これを可能にする解決策はIssue 138で保留中ですが、まだ完了していません。これはかなり致命的な問題なので、今すぐ使用したい場合、巧妙な回避策はありますか?

0 投票する
2 に答える
3282 参照

version-control - Flyway - 同時バージョン / 複数ブランチのサポート

Flywayでバージョン管理を処理するために、多くのエンジニアが並行して作業している大規模なプロジェクトを許可する良い方法を知っている人はいますか? master へのマージ中に、2 ~ 3 個の独立したプロジェクトがデータベースの変更を必要とし、それらが同じバージョン番号を使用したという理由だけで、競合するマージが発生することがよくあります。

このシナリオでは、バージョニング用の Rails スタイルのタイムスタンプが機能するかどうかさえわかりません。なぜなら、master へのマージが行われる順序を必ずしも知っているわけではないからです。

マージの直前に移行の番号を付け直す必要があることを除けば、これを回避するための良いトリックはありますか?

トム

0 投票する
1 に答える
3123 参照

flyway - 同じデータベースを同時に移行しようとしている複数のアプリインスタンス

mysqlデータベースを使用したかなり標準的なSpring2.5Webアプリケーションでflywayを使い始めたところです。それは何年もの間生産されており、たくさんのデータを持っています。

起動時に自動移行するように接続しました

また、Springの永続性ユニットマネージャー(jpaを使用)がそれに依存するようにしたため、JPAが初期化される前にデータベースが移行されます。

これは正常に機能します。

実稼働環境には、同時に更新したいノードがいくつかあります。したがって、実行時間が長い場合、各インスタンスは同じ移行を実行しようとします。Flywayのロック機能はそれを防ぐはずです。

私は本番環境で何かをする前にこれらのことをテストするのが好きなので、そうしました。また、2つのアプリインスタンスが長時間の移行(6分)で同時に開始されたときに何が起こったのかというと、しばらくすると2番目のインスタンスが次のように失敗しました。

スタックトレースのより深いところにSQLExceptionがあります。

本質的にはタイムアウトしているようです。

mysqlとafaikを使用して、メタデータテーブルをロックしようとしています。

移行しようとしたデータベースとそのロック待機タイムアウトを確認しました。

これは明らかな原因です。ただし、他の理由でこのような事態が発生した場合はタイムアウトにする可能性があるため、金額を増やしたいかどうかはわかりません。

移行中は、より高い値に設定しようとするかもしれません。読み取り専用変数のように見えることを除いて:

もちろん、1つのインスタンスを更新し、移行が通過するまで待ってから他のインスタンスを更新するなど、長時間実行される移行が発生することがわかっている場合は、半手動でデプロイを行うことができます。

他に何か提案はありますか?

0 投票する
1 に答える
2184 参照

flyway - フライウェイ テスト拡張機能でプレースホルダーの置換が機能しない

flyway test extension 1.7.0 でプレースホルダーを使用しようとしています。flyway.properties でプレースホルダーを定義しました。

私のSQLスクリプトは次のようになります:

フライウェイ テストを実行すると、次のエラーが発生します。

そのため、プレースホルダーの置換が機能していないようです。ちなみに、flyway.properties ファイルは正常にロードされています (jdbc url などの他の値にも使用しています)。

誰かがここで何が問題なのか知っていますか?

EDIT1 Flyway クラスの configure メソッドが呼び出されていないようです。アプリケーション コンテキストに何かを追加する必要がありますか?

EDIT2私たちが見つけた1つの解決策は、アプリケーションコンテキストにプレースホルダーを設定することです:

しかし、私たちはまだより良い解決策を探しています...

0 投票する
1 に答える
3099 参照

logging - カスタム Gradle プラグインに別のログ レベルを設定するにはどうすればよいですか

私はgradle用のフライウェイラッパープラグインを書いています。Flyway は、メッセージのロギングに既に log4j を使用しています。

情報レベルでは、すべての出力がユーザーに関連しています。

カスタム プラグインを新しいプロジェクトに追加し、そのタスクの 1 つを実行すると、出力に何も表示されません。flywayStatusメッセージを表示するには、gradle --infoを実行する必要があります。

プラグインを使用するプロジェクトでログ レベルを変更する必要がないように、プラグインの log4j 設定を変更する方法はありますか?

どんなアイデアでも大歓迎です。

ありがとう、ガーウィン

0 投票する
3 に答える
173 参照

flyway - Flyway はデータベース間で異なる ID を処理できますか

私たちのテーブル (Oracle データベース 11g) には、シーケンスによって生成された PK があります。これらの ID は、環境間で同期されていません。テーブル A を変更する場合、PK を無視して自然キーを使用するスクリプトを作成する必要があります。たとえば、DEV で ID 102843 とパレット コード YU9 のパーツを更新した場合、ID 102843 の製品に対して更新を発行できません。パーツ コード YU9 の更新を発行する必要があります。テーブルは ID に基づいて結合されるため、関係するテーブルが増えるにつれて、これはますます複雑になります。

とにかく、私たちはこのための SQL スクリプトを生成し、私の人生を悪夢から解放してくれるツールを探していました。フライウェイできますか?ところで、誰かがそのような製品を知っているなら、私はそれについて聞きたいです (私は Redgate などと話しました.その通り)

明確化: システムがどのように機能するかを尋ねているわけではありません。これが仕組みであり、すぐに変わることはありません。flyway 製品が役立つかどうかを尋ねているだけです。