成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

比較Flyway與Liquibase兩大數據庫遷移工具

譯文
數據庫
本文將對兩種最常見的數據庫遷移工具--Flyway和Liquibase,進行介紹與比較,以方便您在實際項目中做出合理的選擇。

[[399635]]

【51CTO.com快譯】眾所周知,對于那些使用著關系型數據庫引擎的各類應用程序而言,數據庫遷移工具的選用是至關重要的。它們不但能夠讓各種復雜且重復的過程更加自動化,而且可以讓我們更加輕松且準確地完成各種大型的遷移任務。

下面,我將對兩種最常見的開源遷移工具--Flyway和Liquibase,進行介紹與比較,以方便您在實際項目中做出合理的選擇。

Flyway的介紹

Flyway是由Redgate公司帶來的一款開源式的數據庫遷移工具。該工具注重規則上的簡約性,而非繁瑣的配置。

目前,它能夠支持諸如Postgres、Oracle、SQL Server、DB2、H2、以及MariaDB等大多數主流數據庫引擎。同時,Flyway還可以支持諸如:Amazon RDS、Google Cloud SQL、以及Heroku等基于云端業務的數據庫服務。

該工具所用到的腳本既可以用純SQL(支持多種SQL語法),又能夠用Java(主要用于更復雜的轉換)來進行編寫。同時,它既帶有命令行客戶端,又提供支持Maven和Gradle的插件。此外,它的Java API,還適用于Android系統。

Flyway的Evolve非常適用于習慣了使用.NET和C#的用戶。因此,如果您對其有興趣的話,請查看文末列出的它在GitHub上的鏈接頁面。

Liquibase的介紹

作為于2006年推出的、可用于數據庫遷移的開源類工具,Liquibase是基于變更日志(changelog)和變更集(changesets)文件的相關概念實現的。這些文件可以由SQL、XML、YAML、以及JSON編寫而成。它們通過存儲那些針對數據庫結構的更改,以便將其應用到任何其他數據庫的實例上。

目前,Liquibase支持的數據庫種類包括:Postgres、Oracle、DB2、H2、MariaDB、SQL Server、以及SQLite等。同時,它還支持諸如:Azure SQL、Amazon RDS、以及Amazon Aurora等許多基于云的數據庫。

您可以使用諸如Maven、Gradle、甚至是Ant之類的構建工具,從Shell中運行Liquibase的遷移腳本。此外,您可以一次生成純粹的SQL查詢,以便您的DBA、Ops、DevOps團隊、或負責數據庫的任何人,可以進一步執行此類查詢。

有了對于上述兩種工具的基本概念,下面讓我們來討論一下它們之間的相同點和不同之處。

Flyway和Liquibase之間的相似之處

  • 在某種程度上,兩者都屬于開源的,并且能夠免費提供各種功能。當然它們也都具有提供更多高級功能的付費版本。
  • 兩者都可以使用簡單、傳統的SQL,來編寫出遷移腳本。
  • 兩者都能完美地“面向Java”,并且都內置了針對Maven和Gradle之類基本構建工具的支持,以及可以與諸如:Spring Boot等最常見的Java框架相集成。
  • 兩者都可以從命令行處運行簡單的shell腳本。
  • 雖然兩者支持的數據庫版本和驅動程序,可能存在著一些細微的差異,但是從整體而言,它們能夠支持的數據庫品種大致相似。
  • 在處理數據庫更改時,兩者用到了相同的方法,即:基于遷移的數據庫交付。
  • 兩種工具都實現了由Martin Fowler提出和詮釋的數據庫重構(Evolutionary database) 的概念(詳見本末鏈接)。

Flyway和Liquibase之間的不同之處

下面,讓我們從橫跨多個數據庫引擎來運行相同腳本的角度,來討論Flyway和Liquibase的不同之處。

首先,我們會碰到的一個實際問題是:如何針對實例生產差異(diff)。您會發現,我們可以直接使用Liquibase來生成相關差異;卻無法使用Flyway來實現,而且即便是其付費版本也無法達到。這便是我們往往在項目中選擇Liquibase,而非Flyway的主要原因之一。

其次,我們來看看Java客戶端。Flyway擁有原生的Java API,它可以幫助我們進行諸如BLOB和CLOB的更改、以及高級批量數據的修改等較為復雜的遷移。這些功能在某些受限制的遷移場景中,是非常實用的。因此這反過來成為了用戶選用Flyway,而非Liquibase的主要原因之一。

接著,我們來討論兩種工具是如何處理回滾的。我們設置Liquibase的changelog文件相對比較容易。實際上,changelog的XML結構甚至已經為回滾代碼定義好了一個特殊的字段。而Flyway僅在其付費版本中提供了回滾處理的服務。因此,如果您不介意使用付費工具的話,可以考慮使用Flyway的相關功能。當然,據說Liquibase的付費版本,對于不同類型的回滾,具有更完備的支持。您如果有時間和精力的話,可以去試用一下。

最后,讓我們來看看更改順序的管理。對此,兩種工具有著完全不同的處理方法。Flyway采取的是線性數據庫版本控制的概念。這意味著,應用更改的順序,取決于遷移腳本的名稱順序。實際上,Flyway的遷移腳本有著一個完整的命名規則。如果您希望它能夠按照預期執行的話,就必須遵循該規則。而在Liquibase中,數據庫實例的更改順序,基于整個changelog文件中的特定更改位置。也就是說,如果您將更改按照某種特定的順序放在changelog中的話,那么對于數據庫的更改也將以完全相同的順序執行并完成。

小結

綜上所述,我們對Flyway和Liquibase兩種數據庫遷移工具進行了綜合比較。總的說來,Flyway的優點在于,其遷移腳本更具有可讀性。如果您非常熟悉SQL的話,那么它用起來更加便捷、更加順手。當然,它的缺點是無法實現跨平臺的使用。而Liquibase正好相反,其優點在于可以跨平臺被使用,其不足之處在于,由于它功能強大,因此我們可能需要花費一定的精力,去維護它的遷移腳本。

相關鏈接

原文標題:Database Migration tools: Flyway vs. Liquibase,作者: Bartłomiej Żyliński

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2020-08-13 07:42:15

數據庫Flyway代碼

2019-10-30 11:28:56

Javaflyway數據庫

2010-05-04 14:30:45

Oracle數據

2025-01-26 00:00:35

2016-08-21 14:19:05

數據工具DataXSqoop

2014-08-14 10:02:34

大數據行業

2012-03-19 16:34:19

數據庫遷移

2023-10-19 09:00:00

數據庫GitOps

2016-12-05 14:05:32

2021-10-26 08:00:00

數據庫架構技術

2017-12-27 15:16:35

Spring BootFlyway數據庫

2020-07-07 14:11:41

AWS混合云平臺云數據庫

2021-01-10 15:29:53

開源數據庫數據庫

2010-05-06 09:27:13

2022-07-27 08:12:44

SchemaHero云原生

2021-07-07 10:12:08

數據庫工具技術

2011-09-23 09:09:38

數據庫遷移

2011-03-24 11:01:48

TRILLSPB數據中心

2022-03-01 18:23:17

架構大數據系統

2011-03-23 14:25:54

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产伦精品一区二区 | 日本淫视频 | www.青青草| 一区二区在线不卡 | 91国内外精品自在线播放 | 久久久久久综合 | 欧美久久久久久久 | 国产视频一区二区在线观看 | 国产1区2区在线观看 | 精品视频一二区 | 亚洲淫视频 | 青青久久av北条麻妃海外网 | 中文字幕日韩欧美 | 久久精品日产第一区二区三区 | 国产综合久久 | 欧美成年网站 | 成人免费视频 | 亚洲国产精品久久久久秋霞不卡 | 天天躁日日躁xxxxaaaa | 日本不卡一区二区三区在线观看 | 美女人人操 | 亚洲小视频在线播放 | 久久最新 | 一区二区三区视频 | 91精品国产91久久久久久最新 | 国产视频第一页 | 欧美精品久久久 | 九色av | 成人免费一区二区三区视频网站 | 免费国产黄网站在线观看视频 | 日韩视频中文字幕 | 亚洲免费大片 | 罗宾被扒开腿做同人网站 | 99国内精品久久久久久久 | 一区二区三区视频在线 | 免费国产成人av | 亚洲精品久久久久avwww潮水 | 国产成人99久久亚洲综合精品 | 久久99久久98精品免观看软件 | 亚洲一区二区精品视频在线观看 | 亚洲第一区久久 |