国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ Java &#&ベース Flyway の詳しい使用方法

Flyway の詳しい使用方法

Jul 28, 2020 pm 06:31 PM

Flyway の詳しい使用方法

1. 開発中のデータベース管理で発生した問題:

現(xiàn)在、開発はチームで行われるのが一般的であるため、プロジェクトの同期に問題が生じます。コードの同期は SVN ツールを使用して管理できますが、データベースの同期はどうなるのでしょうか?理想的には、新しいプロジェクトを開発するときは、最初にビジネスを明確にし、データベースのテーブルを設(shè)計し、その後メンテナンスのために専門の擔當者にデータベースを引き渡すので、データベースの同期の問題は発生しません。しかし、実際の狀況はどうなのでしょうか?要件はプロジェクトの最初から最後まで変化し続けます。多くの企業(yè)には専任のデータベース保守擔當者がいません。全員がデータベースの操作と変更を行っています。チームがタイムリーにコミュニケーションをとり、全員が毎年コードを更新していれば問題ありません。データベース、コミュニケーションがタイムリーでない場合は、笑(自分で決めることができます)。 。 。このようにして、データベースが同期していない問題が浮き彫りになります。

2. Flyway の簡単な紹介:

1. コンセプト:

Flyway はデータベース アプリケーション、管理、およびデータベースの変更を追跡するための獨立したデータベース バージョン管理ツール。平たく言えば、SVN がさまざまな人々のコードを管理するのと同じように、Flyway はさまざまな人々の SQL スクリプトを管理することができ、それによってデータベースの同期を?qū)g現(xiàn)します。

2. サポートされているデータベースの種類:

Oracle、SQL Server、SQL Azure、DB2、DB2 z/OS、MySQL (Amazon RDS を含む)、MariaDB、Google Cloud SQL、PostgreSQL (Amazon を含む) RDS および Heroku)、Redshift、Vertica、H2、Hsql、Derby、SQLite、SAP HANA、solidDB、Sybase ASE、および Phoenix。

3. SQL スクリプトの命名規(guī)則:

V バージョン番號 (バージョン番號の番號は「.」または「_」で區(qū)切られます) 二重アンダースコア (バージョン番號を區(qū)切るために使用されます)および説明) ファイル説明のサフィックス名 (例: V2017.9.30__Update.sql)。

注: バージョン番號を同じにすることはできません。

4. Flyway が SQL スクリプトを読み取るためのデフォルトの場所:

プロジェクトのソース フォルダーの下の db/migration ディレクトリ。

5. コマンド:

合計 6 つの基本コマンドがあります: 移行、クリーン、情報、検証、ベースライン、修復。

3. Flyway の利點:

1. SQL スクリプトをサポートするだけでなく、データベースを直接操作するための Java コードもサポートします (flyway -core-x.x.x.jar);

2. Maven プラグインあり;

3. コマンドラインをサポート;

4. Spring box と組み合わせると非常に便利データベース機能を自動的にチェックしてアップグレードします。

4. Flyway コマンド ライン ツールの使用:

1. flyway-commandlin バージョンを解凍してダウンロードし、ローカルで解凍します。

2. SQL スクリプトを Flyway のデフォルトの db/migration ディレクトリに配置します。別の場所に配置した場合は、conf 內(nèi)の flyway.locations を変更する必要があります。 /flyway.conf ファイル。

3. 獨自の狀況に応じて、conf/flyway.conf ファイル內(nèi)の flyway.url、flyway.user、flyway.password を変更します。

4. コマンドラインで移行コマンドを?qū)g行します。

5. Maven プロジェクトと組み合わせて使用??する:

1. 依存関係座標を?qū)毪工?

<!-- flyway -->
 <dependency>
 <groupId>org.flywaydb</groupId>
 <artifactId>flyway-core</artifactId>
 <version>4.2.0</version>
 <dependency>

2. src/main/resources に作成するディレクトリ SQL バージョン ファイルを保存するパスは dataBase/sqlite (デフォルトのパス db/migration を記述することもできます) で、その下に SQL ファイルを配置します。

3. flyway の Java クラスを追加します:

package com.xxxxxx.flyway;
 
 import javax.sql.DataSource;
 import org.flywaydb.core.Flyway;
 
 public class MigrationSqlite {
 
 private DataSource dataSource;
 
 public void setDataSource(DataSource dataSource) {
 this.dataSource = dataSource;
 }
 
 public void migrate() {
 //初始化flyway類
 Flyway flyway = new Flyway();
 //設(shè)置加載數(shù)據(jù)庫的相關(guān)配置信息
 flyway.setDataSource(dataSource);
 //設(shè)置存放flyway metadata數(shù)據(jù)的表名,默認"schema_version",可不寫
 flyway.setTable("SCHMA_VERSION");
 //設(shè)置flyway掃描sql升級腳本、java升級腳本的目錄路徑或包路徑,默認"db/migration",可不寫
 flyway.setLocations("dataBase/sqlite");
 //設(shè)置sql腳本文件的編碼,默認"UTF-8",可不寫
 flyway.setEncoding("UTF-8");
 
 flyway.migrate();
 }
 }

4. Spring のステップ 3 の Java クラスをインスタンス化します:

<bean id="MigrationSqlite" class="com.xxxxxx.flyway.MigrationSqlite" init-method="migrate">
 <property name="dataSource" ref="dataSource"></property>
 </bean>

上記の Bean 定義から、flywayMigration Bean インスタンスにデータ ソースを挿入したことがわかります。Flyway のすべての操作はこのデータ ソースに対して実行されます。同時に、インスタンス化時に init-method 屬性を通じて Spring を指定します。その後、Bean の移行メソッドがアクティブに実行され、このメソッド內(nèi)で Flyway がデータベースを更新します。ここまでで、アプリケーションの起動時に Spring がコンテキストをインスタンス化し、Spring が flywayMigration Bean をインスタンス化すると、Flyway がデータベースを自動的に更新するところまで到達しました。

5. Flyway がデータベースを更新し、コード ロジックがデータベースを操作するときに競合を処理します (私はまだ遭遇していませんが、オンラインで見つけました。緊急用に保管しておきます):

Flyway がデータベースを更新する前に、アプリケーションの他のロジックが更新操作を完了する前に他の操作にデータベースを使用し始めます。これにより、アプリケーションに多くのバグが発生したり、まったく実行されなくなったりすることがあります。この問題を解決するには、Spring の Bean 依存関係原則を使用して、主要なデータベース操作 Bean を flywayMigration Bean に依存させ、flywayMigration がインスタンス化される (データベース更新操作が完了する) まで、他のデータベース関連の操作を?qū)g行できないようにします。

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" depends-on="MigrationSqlite">
 <property name="dataSource" ref="dataSource" />
 </bean>

この方法では、プロジェクトが開始されるたびにデータベースが自動的に更新されるため、データベースが同期していないことを心配する必要はありません。

推奨チュートリアル: 「Java チュートリアル

以上がF(xiàn)lyway の詳しい使用方法の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)