flywayのデフォルト設定であるmysqlデータベースの場合、flywayはINNODBを「schema_versionテーブル」を作成するためのデフォルトのストレージエンジンとして使用します。とにかくデフォルトのストレージエンジンをMyISAMに設定できるのですか?私はフライウェイの瓶を開き、コードベースから変更しようとしました。また、schema_versionテーブルを作成する.sqlファイルも見つかりました。しかし、そのファイルを変更し、再び瓶を梱包した後、私は飛行場を走らせることができませんでした。設定変更はありますか?そこから私はそれをパラメータとして変更することができます。 私はフライウェイ4.0.3のコミュニティバージョンを使用していますflywayのデフォルトのストレージエンジンを変更する方法
-1
A
答えて
0
可能ならば、フライウェイのソースを変更することを避けることをお勧めします。
Flywayを作成した後でテーブルエンジンを変更することはできますか?これが不可能な場合は、Flywayを使用する前にschema_versionテーブルを作成し、ベースラインを効果的に偽ることができます。
0
私はまったく同じ問題を抱えていました。私の顧客はInnoDBエンジンを無効にしました。フライウェイはエンジンをカスタマイズすることはできません。これは、ハードコードされ:
だから私は自分でこのステップを実行する必要がありました。それほど仕事ではありません:
private static void baselineWithDefaultStorageEngine(Flyway flyway) {
try (Connection con = flyway.getDataSource().getConnection()) {
if (!versionTableExisting(con, flyway)) {
createVersionTable(con);
setBaseline(con);
}
} catch (SQLException e) {
throw new RuntimeException("Konnte Flyway Baseline für " + flyway.getDataSource() + " nicht erstellen.", e);
}
}
private static void createVersionTable(Connection con) throws SQLException {
try(PreparedStatement stmt = con.prepareStatement("CREATE TABLE flyway_schema_history (" +
"`installed_rank` INT NOT NULL, " +
"`version` VARCHAR(50), " +
"`description` VARCHAR(200) NOT NULL, " +
"`type` VARCHAR(20) NOT NULL, " +
"`script` VARCHAR(1000) NOT NULL, " +
"`checksum` INT, " +
"`installed_by` VARCHAR(100) NOT NULL, " +
"`installed_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, " +
"`execution_time` INT NOT NULL, " +
"`success` BOOL NOT NULL, " +
"CONSTRAINT `flyway_schema_history_pk` PRIMARY KEY (`installed_rank`), " +
"INDEX `flyway_schema_history_s_idx` (`success`) " +
");")) {
stmt.execute();
}
}
private static void setBaseline(Connection con) throws SQLException {
try (PreparedStatement stmt = con.prepareStatement("INSERT INTO `flyway_schema_history` " +
"(`installed_rank`, `version`, `description`, `type`, `script`, `installed_by`, `execution_time`, `success`) VALUES " +
"(?, ?, ?, ?, ?, ?, ?, ?)")) {
stmt.setInt(1, 1);
stmt.setInt(2, 1);
stmt.setString(3, "<< Flyway Baseline >>");
stmt.setString(4, "BASELINE");
stmt.setString(5, "<< Flyway Baseline >>");
stmt.setString(6, "root");
stmt.setInt(7, 0);
stmt.setInt(8, 1);
stmt.execute();
}
}
private static boolean versionTableExisting(Connection con, Flyway flyway) throws SQLException {
try (PreparedStatement stmt = con.prepareStatement("show tables like 'flyway_schema_history'")) {
try (ResultSet resultSet = stmt.executeQuery()) {
return resultSet.next();
}
}
}
関連する問題
- 1. デフォルトのストレージエンジンを変更するAmazon RDS MariaDB
- 2. Mysqlのテーブルのストレージエンジンを変更する
- 3. MySQL Workbench EERダイアグラム - ストレージエンジンの変更方法は?
- 4. デフォルトのバリデーションデコレーションコントロールを変更する方法
- 5. Angular2デフォルトの変更検出方法を変更する
- 6. RightScaleを使用してInnoDBからMyISAMにストレージエンジンを変更する方法
- 7. アプリケーションを開くデフォルトの方法を変更する方法
- 8. Magentoデフォルトの支払方法を変更
- 9. デフォルトのミドルウェアリダイレクトの変更方法
- 10. AllUsersProfile環境変数のデフォルト値を変更する方法。
- 11. Flywayリソースの場所をスカラー単位テストに変更する
- 12. jtableのデフォルトのストップエディットの動作を変更する方法
- 13. jointJS-Rappidのグラフのデフォルトのリンク名を変更する方法
- 14. IOS Xamarin.FormsのフローティングTextFieldのデフォルトのプレースホルダカラーを変更する方法
- 15. MVC3のデフォルトのエラーページの場所を変更する方法は?
- 16. Lucene MultiFieldQueryParserとのデフォルトの接続を変更する方法
- 17. Visual Studio 2008のデフォルトのプロジェクトディレクトリを変更する方法
- 18. 'alert'のデフォルトの見出しを変更する方法
- 19. EclipseでC++のデフォルトのコードテンプレートを変更する方法は?
- 20. Gitlabでマージのデフォルトのターゲットブランチを変更する方法
- 21. LiteServerのデフォルトのファイル監視オプションを変更する方法
- 22. Visual StudioのデフォルトのMSTest、VSTestパラメータを変更する方法
- 23. Magento(1.9)製品イメージのデフォルトのアップロードサイズを変更する方法
- 24. レポートのデフォルトのフォントサイズを変更する方法
- 25. デフォルトのvimカラースキームで低コントラストのハイライトを変更する方法
- 26. SSRSのデフォルトの複数値パラメータを変更する方法
- 27. Androidプリントクラスのデフォルトのプリントオプションを変更する方法
- 28. Odoo 8のプロパティフィールドのデフォルト値を変更する方法は?
- 29. CLionのデフォルトのフォントサイズを変更する方法は?
- 30. MVCのデフォルトの生成スタイルを変更する方法