スプリングフレーム集成flywayプロジェクトの詳細過程
Springとは何ですか
SpringはRod John sonによって作成されたオープンソースフレームです。企業の応用開発の複雑さを解決するために作られました。
Springは基本的なJavaBeanを使って、これまでEJBでしかできなかったことを完成させます。
ただし、Springの用途はサーバ端の開発に限られない。単純性、試験可能性、および松結合の観点から、JavaアプリケーションはいずれもSpringから恩恵を受けることができる。
目的:企業の応用開発の複雑さを解決する。
機能:基本的なJavaBeanを使ってEJBの代わりに、より多くの企業応用機能を提供しています。
範囲:任意のJavaアプリケーション
これはJavabean(javaオブジェクト)を取り付けるための容器フレームであり、中間層フレーム(万能ゴム)は、Strutsとhibernaneを接着して運用するなどの接続機能を果たすことができる。簡単に言えば、Springは軽量級の制御反転(IoC)と断面(AOP)向けの容器フレームである。
Flyway概要
Flywayはデータベースバージョン管理ツールで、SQLスクリプトによりDB Migrationの自動化アップグレードを実現し、独立運行をサポートし、ツールやSpring開発環境と統合することもできます。
最近会社のプロジェクトにflywayを集めました。私達のプロジェクトのモバイル端末はspringフレームを使っていますので、ネットでたくさんのブログを見ました。この方面のものはまだ少ないと思います。結局今はspringbootの天下です。多くはspringboot集成flywayです。しかし、多くの会社がspringの枠組みを残しているプロジェクトがあります。ここは自分の肝臓の一編です。もっと多くのflywayをspringプロジェクトに追加したい人を助けたいです。
スプリングフレームを使用しています。したがって、私たちは低バージョンのflywayを選択します。
flyway各バージョンはここで探してください。https://mvnrepository.com/artifact/org.flywaydb/flyway-core
私たちのmavenはアリ雲の倉庫を使っています。アリ雲倉庫には低いバージョンの依存がありません。私たちはjarカバンをダウンロードしたいです。ここでダウンロードしたのは3.0バージョンのjarパッケージです。
ダウンロードしたカバンはプロジェクトwebapp/WEB-INF/libにコピーする必要があります(webプロジェクトにはWEB-INFというフォルダがあります。あなたのプロジェクトのwebフォルダを見つけたらいいです。webフォルダとは、フォルダに青い点があります。具体的には下の図のwebappフォルダを見てください。)
新規リソースディレクトリ
その下にdb/migrationを作成します。(sqlファイルはデフォルトでこのパスを読み込むフォルダの中の.sqlファイル)
pom.xmlに追加し、追加しないと、resourceのファイルはwarパッケージに包装できません。
ここに来て、モバイル端末がflywayを統合したら完成です。
今後これらのsql文は、resource/db/migrationフォルダの下に置くだけでいいです(ただし、これらのsqlの名前はflywayに合わないので、名前の修正が必要です)
名前のルール:
ここのSQL文の名前は一定の規範に従う必要があります。さもなければ運行時にflywayはエラーを報告します。命名規則は主に二つあります。
一回実行されるSQLだけを大文字の「V」と命名し、後から「0~9」の数字の組み合わせをフォローします。数字の間に「.」または下線「分割」を使って、二つの下線を引いてください。分割し、その後はファイル名と、最後は.sqlで終了します。例えば、V 202010707__uクリアードuser.sql、V 2010707_uadd_アメリカ。
繰り返し実行可能なSQLは、大文字の「R」で始まり、後は2つの下線で分割され、その後はファイル名となり、最後は.sqlで終了します。例えば、R_u utruncate_アメリカ.dml.sql。
ここで、V先頭のSQLは、R先頭のSQLより優先度が高い。
V:固定大文字
2010707.01:202910707は日付で、後は.01は番号を表します。
flywayの実行には順番がありますので、例えば、V 2021_u 0026 quot;を実行しました。クリアードアメリカは、V 2020_を実行しています。udate_user2020<2021>がエラーとなります。ですから、順番が順次増えることを保証します。
Flywayはどのように二つのSQLファイルの先着順を比較しますか?左揃えの原則を採用しています。空白は0で代用します。いくつかの例を挙げます
1.0.1.1は1.0.1バージョンより高いです。
1.0.10は1.0.94より高いです。
1.0.10と1.0.010バージョン番号は同じ高さで、各バージョン番号部分のプリアンブル0は無視されます。
ウ_:これは二つの_です
たとえば:
V 2.0.9_uugrade.sql
V 2.0.11__ugrade.sql
V 2.0.13__ugrade.sql
V 2.0.14__ugrade.sql
天下には有料のバスがありません。出典:https://www.cnblogs.com/LoveBB/本著作権は著者とブログパークに共有され、転載を歓迎するが、作者の同意なしに文章のページに原文のリンクを与えなければならない。そうでなければ法律責任を追及する権利を保留する。
ここで、スプリングインテグレーションflywayについての文章を紹介します。もっと関連するspringインテグレーションflywayの内容を紹介します。以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。
SpringはRod John sonによって作成されたオープンソースフレームです。企業の応用開発の複雑さを解決するために作られました。
Springは基本的なJavaBeanを使って、これまでEJBでしかできなかったことを完成させます。
ただし、Springの用途はサーバ端の開発に限られない。単純性、試験可能性、および松結合の観点から、JavaアプリケーションはいずれもSpringから恩恵を受けることができる。
目的:企業の応用開発の複雑さを解決する。
機能:基本的なJavaBeanを使ってEJBの代わりに、より多くの企業応用機能を提供しています。
範囲:任意のJavaアプリケーション
これはJavabean(javaオブジェクト)を取り付けるための容器フレームであり、中間層フレーム(万能ゴム)は、Strutsとhibernaneを接着して運用するなどの接続機能を果たすことができる。簡単に言えば、Springは軽量級の制御反転(IoC)と断面(AOP)向けの容器フレームである。
Flyway概要
Flywayはデータベースバージョン管理ツールで、SQLスクリプトによりDB Migrationの自動化アップグレードを実現し、独立運行をサポートし、ツールやSpring開発環境と統合することもできます。
最近会社のプロジェクトにflywayを集めました。私達のプロジェクトのモバイル端末はspringフレームを使っていますので、ネットでたくさんのブログを見ました。この方面のものはまだ少ないと思います。結局今はspringbootの天下です。多くはspringboot集成flywayです。しかし、多くの会社がspringの枠組みを残しているプロジェクトがあります。ここは自分の肝臓の一編です。もっと多くのflywayをspringプロジェクトに追加したい人を助けたいです。
スプリングフレームを使用しています。したがって、私たちは低バージョンのflywayを選択します。
flyway各バージョンはここで探してください。https://mvnrepository.com/artifact/org.flywaydb/flyway-core
私たちのmavenはアリ雲の倉庫を使っています。アリ雲倉庫には低いバージョンの依存がありません。私たちはjarカバンをダウンロードしたいです。ここでダウンロードしたのは3.0バージョンのjarパッケージです。
ダウンロードしたカバンはプロジェクトwebapp/WEB-INF/libにコピーする必要があります(webプロジェクトにはWEB-INFというフォルダがあります。あなたのプロジェクトのwebフォルダを見つけたらいいです。webフォルダとは、フォルダに青い点があります。具体的には下の図のwebappフォルダを見てください。)
新規リソースディレクトリ
その下にdb/migrationを作成します。(sqlファイルはデフォルトでこのパスを読み込むフォルダの中の.sqlファイル)
pom.xmlに追加し、追加しないと、resourceのファイルはwarパッケージに包装できません。
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
flywayの配置類を追加します。もっと多い配置はソースコードを見てください。
package com.dt.flyway;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.flywaydb.core.Flyway;
import org.flywaydb.core.api.FlywayException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
/**
* @Description: flyway
* @author:
* @Date: 2021/7/12 15:57
* @Copyright: Xi'an Dian Tong Software Co., Ltd. All Rights Reserved.
* @Version 1.0
*/
public class DatabaseFlywayMigration {
protected final static Logger log = LogManager.getLogger("DatabaseFlywayMigration");
public void migrate() throws NamingException {
log.info("DatabaseFlywayMigration-->migrate:flyway , ");
Context context = new InitialContext();
// tomcat
DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/wxi");
log.info("DatabaseFlywayMigration-->migrate: , flyway ");
Flyway flyway = new Flyway();
// sql
flyway.setEncoding("UTF-8");
flyway.setOutOfOrder(true);
flyway.setDataSource(dataSource);
// flyway
//flyway.setSchemas("flywaydemo");
// flyway metadata
flyway.setTable("flyway_schema_history");
// migrate validation
//flyway.setValidationMode(ValidationMode.ALL);
// validation
//flyway.setValidationErrorMode(ValidationErrorMode.FAIL);
// validation
try {
flyway.setInitOnMigrate(true);
log.info("DatabaseFlywayMigration-->migrate: , sql ");
flyway.migrate();
log.info("DatabaseFlywayMigration-->migrate:sql ,flyway---END");
} catch (FlywayException e) {
log.error("DatabaseFlywayMigration-->migrate: sql , ");
flyway.repair();
e.printStackTrace();
}
}
}
springのxmlにflywayの配置類を注入するbean(各spring項目には1つのxmlファイルがあり、beanを登録するために使用され、コピーする時に注意する項目の中でDatabaseFlywayMigrationがある経路)
<!-- flayway -->
<bean id="flywayMigration1" class="com.dt.flyway.DatabaseFlywayMigration" lazy-init="false" init-method="migrate"> </bean>
ここに来て、モバイル端末がflywayを統合したら完成です。
今後これらのsql文は、resource/db/migrationフォルダの下に置くだけでいいです(ただし、これらのsqlの名前はflywayに合わないので、名前の修正が必要です)
名前のルール:
ここのSQL文の名前は一定の規範に従う必要があります。さもなければ運行時にflywayはエラーを報告します。命名規則は主に二つあります。
一回実行されるSQLだけを大文字の「V」と命名し、後から「0~9」の数字の組み合わせをフォローします。数字の間に「.」または下線「分割」を使って、二つの下線を引いてください。分割し、その後はファイル名と、最後は.sqlで終了します。例えば、V 202010707__uクリアードuser.sql、V 2010707_uadd_アメリカ。
繰り返し実行可能なSQLは、大文字の「R」で始まり、後は2つの下線で分割され、その後はファイル名となり、最後は.sqlで終了します。例えば、R_u utruncate_アメリカ.dml.sql。
ここで、V先頭のSQLは、R先頭のSQLより優先度が高い。
V:固定大文字
2010707.01:202910707は日付で、後は.01は番号を表します。
flywayの実行には順番がありますので、例えば、V 2021_u 0026 quot;を実行しました。クリアードアメリカは、V 2020_を実行しています。udate_user2020<2021>がエラーとなります。ですから、順番が順次増えることを保証します。
Flywayはどのように二つのSQLファイルの先着順を比較しますか?左揃えの原則を採用しています。空白は0で代用します。いくつかの例を挙げます
1.0.1.1は1.0.1バージョンより高いです。
1.0.10は1.0.94より高いです。
1.0.10と1.0.010バージョン番号は同じ高さで、各バージョン番号部分のプリアンブル0は無視されます。
ウ_:これは二つの_です
たとえば:
V 2.0.9_uugrade.sql
V 2.0.11__ugrade.sql
V 2.0.13__ugrade.sql
V 2.0.14__ugrade.sql
天下には有料のバスがありません。出典:https://www.cnblogs.com/LoveBB/本著作権は著者とブログパークに共有され、転載を歓迎するが、作者の同意なしに文章のページに原文のリンクを与えなければならない。そうでなければ法律責任を追及する権利を保留する。
ここで、スプリングインテグレーションflywayについての文章を紹介します。もっと関連するspringインテグレーションflywayの内容を紹介します。以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。