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

優(yōu)秀數(shù)據(jù)庫(kù)模式遷移工具的發(fā)展歷程

譯文
數(shù)據(jù)庫(kù)
從CLI到GUI,再到GitOps和數(shù)據(jù)庫(kù)即代碼(Database-as-Code),數(shù)據(jù)庫(kù)模式遷移經(jīng)歷了漫長(zhǎng)的過(guò)程。而人們需要了解數(shù)據(jù)庫(kù)模式遷移工具的發(fā)展。

譯者 | 李睿

審校 | 重樓

數(shù)據(jù)庫(kù)模式遷移可能是應(yīng)用程序開(kāi)發(fā)中風(fēng)險(xiǎn)最大的領(lǐng)域——因?yàn)檫@是一個(gè)困難的、有風(fēng)險(xiǎn)的和痛苦的過(guò)程。數(shù)據(jù)庫(kù)模式遷移工具的存在是為了減輕這種痛苦,并且已經(jīng)取得了長(zhǎng)足的進(jìn)步:從基本的CLI工具到GUI工具,從簡(jiǎn)單的SQL GUI客戶端到一體化協(xié)作數(shù)據(jù)庫(kù)平臺(tái)。

命令行客戶端(CLI) - MySQL/PSQL

MySQL和PSQL分別是MySQL和PostgreSQL的本地CLI可以從命令行直接向MySQL或PostgreSQL服務(wù)器發(fā)送命令或查詢。

盡管CLI界面很簡(jiǎn)單,但有時(shí)它會(huì)讓初學(xué)者望而生畏。然而,根據(jù)Timescale公司的2022年P(guān)ostgreSQL狀態(tài)調(diào)查結(jié)果,PSQL是最受歡迎的與PostgreSQL交互的工具,超過(guò)了pgAdmin和DBeaver等GUI工具。

GUI

1.PHPMyAdminPGAdmin

PHPMyAdminPGAdmin是經(jīng)典的SQL客戶端。PHPMyAdmin已經(jīng)是一個(gè)管理MySQL和MySQL兼容數(shù)據(jù)庫(kù)(例如MariaDB)的工具,而PGAdmin是PostgreSQL的對(duì)應(yīng)工具,現(xiàn)在已經(jīng)發(fā)展到PGAdmin 4。與CLI工具相比,PHPMyAdminPGAdmin提供了一個(gè)用于運(yùn)行和執(zhí)行SQL查詢的用戶界面(UI),使它們更加友好。

2.DBeaver

DBeaver的最初版本發(fā)布于2010年,這款開(kāi)源SQL客戶端支持各種數(shù)據(jù)庫(kù)(SQL、NoSQL和云數(shù)據(jù)庫(kù)),并通過(guò)整合OpenAI公司的GPT功能跟上人工智能領(lǐng)域的最新趨勢(shì),允許將自然語(yǔ)言轉(zhuǎn)換為SQL。

3.Navicat

Navicat于2001年首次發(fā)布。它當(dāng)時(shí)只支持MySQL,但后來(lái)增加了更多的數(shù)據(jù)庫(kù)。雖然Navicat的UI看起來(lái)有點(diǎn)過(guò)時(shí),但它具有完整的功能,并且在操作數(shù)據(jù)庫(kù)時(shí)提供了流暢的整體體驗(yàn)。

基于GUI的SQL客戶端是對(duì)基于CLI的SQL客戶端的良好補(bǔ)充。從根本上講,它們的工作方式是一樣的。用戶可以快速方便連接到數(shù)據(jù)庫(kù)并執(zhí)行一些SQL。另一方面,在數(shù)據(jù)庫(kù)更改管理和數(shù)據(jù)安全方面缺乏控制。本文將以Navicat為例進(jìn)行詳細(xì)介紹。

Gitops /數(shù)據(jù)庫(kù)即代碼

為了更好地管理和控制數(shù)據(jù)庫(kù)模式更改,一些工具在數(shù)據(jù)庫(kù)更改中引入了代碼更改過(guò)程,稱為數(shù)據(jù)庫(kù)即代碼(Database-as-Code)

1.Liquibase

Liquibase創(chuàng)建于2006年,是一個(gè)用于跟蹤、管理和應(yīng)用數(shù)據(jù)庫(kù)更改的開(kāi)源庫(kù)。一個(gè)有趣的事實(shí)是:Liquibase于2012年被一家名為Datical的公司收購(gòu),并更名為Datica,但隨后于2020年更名為L(zhǎng)iquibase(這是明智之舉,見(jiàn)過(guò)有人在論壇上提到過(guò)Datica嗎?)。

Liquibase的主要產(chǎn)品是基于Java的CLI,它允許開(kāi)發(fā)團(tuán)隊(duì)通過(guò)CLI將數(shù)據(jù)庫(kù)模式遷移集成到他們的CI/CD工作流中。

2.Flyway

Flyway與Liquibase在很多方面有相似之處:它們都是成立時(shí)間較長(zhǎng)的數(shù)據(jù)庫(kù),擁有客戶群,而且都是開(kāi)源項(xiàng)目。它的核心產(chǎn)品是CLI和Java庫(kù)。

Flyway背后的商業(yè)實(shí)體是Redgate(于2019年被收購(gòu))。它有3個(gè)版本:社區(qū)、團(tuán)隊(duì)和企業(yè)。可以看出,他們?cè)陂_(kāi)源和商業(yè)產(chǎn)品之間劃出了一條清晰的界限:Flyway的網(wǎng)站總體上感覺(jué)更隨意,而Redgate的方式更專業(yè)。

Liquibase和Flyway并駕齊驅(qū)。兩者的主要區(qū)別在于各自的定位:Liquibase更面向企業(yè),而Flyway更面向開(kāi)發(fā)者。

3.Sqitch

Sqitch是一個(gè)純開(kāi)源項(xiàng)目,自從2012年以來(lái)一直沒(méi)有商業(yè)產(chǎn)品上市。它是純粹的CLI,沒(méi)有UI。

與基于Java的Liquibase和Flyway不同,Sqitch是使用Perl開(kāi)發(fā)的。此外,Sqitch在如何管理數(shù)據(jù)庫(kù)模式更改方面有自己的理念:Liquibase和Flyway都使用文件命名約定來(lái)安排模式遷移(約定高于配置)。

而Sqitch采用了一種顯式的方法,允許用戶在Sqitch計(jì)劃中指定順序。

4.Atlas

Atlas是一個(gè)由Ariga構(gòu)建的開(kāi)源工具,并推廣了“數(shù)據(jù)庫(kù)模式即代碼”這一術(shù)語(yǔ)。

可以看出,他們從HashiCorp那里獲得了很多靈感,并在首次出現(xiàn)在Hacker News上時(shí)將自己稱為“數(shù)據(jù)庫(kù)遷移的Terraform”。他們還發(fā)明了基于HCL (HashiCorp配置語(yǔ)言)的Atlas HCL。

Atlas使用現(xiàn)代編程語(yǔ)言Go(與使用Java的Liquibase/Fireway不同),并以CLI為中心(類似于Liquibase.Fireay/Sqitch),但它也有一個(gè)輕量級(jí)的UI。Atlas Cloud是一個(gè)開(kāi)源版本的商業(yè)產(chǎn)品。

一體化:GUI + Gitops / Database-As-Code + Collaboration

1.Prisma

像Prisma這樣的ORM針對(duì)的是代碼如何與數(shù)據(jù)交互的領(lǐng)域。雖然這更多的是一個(gè)后端主題,但Prisma是一個(gè)具有前端根的ORM。前端工程師可能不是最精通SQL的。為了降低管理數(shù)據(jù)庫(kù)模式的障礙,Prisma發(fā)明了它的DSL來(lái)定義數(shù)據(jù)模型。

DSL是基于狀態(tài)的(聲明性的),它描述了數(shù)據(jù)庫(kù)模式的最終狀態(tài),而不是增量變化,這與Liquibase/Flyway/Sqitch不同。通過(guò)這種方式,Prisma可以在整個(gè)應(yīng)用程序開(kāi)發(fā)周期中提供更全面的數(shù)據(jù)庫(kù)管理視圖。

Prisma ORM是開(kāi)源的,可以免費(fèi)使用,他們的數(shù)據(jù)平臺(tái)提供了一個(gè)基于云的協(xié)作平臺(tái),具有一些高級(jí)功能(很明顯,他們的目標(biāo)不僅僅是一個(gè)ORM和模式遷移工具)。

2.Bytebase

Bytebase是一個(gè)開(kāi)源數(shù)據(jù)庫(kù)DevOps工具,涵蓋了數(shù)據(jù)庫(kù)管理場(chǎng)景,從變更、查詢、安全性到基于Web的可視化協(xié)作工作區(qū)的治理。

Bytebase提供了一個(gè)基于Web的UI,開(kāi)發(fā)人員和DBA可以通過(guò)同一個(gè)界面協(xié)作處理數(shù)據(jù)庫(kù)更改。

3.數(shù)據(jù)庫(kù)即代碼(Database-As-Code

為了更好地適應(yīng)開(kāi)發(fā)人員的工作習(xí)慣,Bytebase已經(jīng)將功能集成到代碼庫(kù)中,例如itLab和GitHub。通過(guò)啟用GitOps工作流,開(kāi)發(fā)人員可以將數(shù)據(jù)庫(kù)更改文件提交到熟悉的代碼存儲(chǔ)庫(kù),一旦審查完成并提交到repo, Bytebase將自動(dòng)觸發(fā)部署。無(wú)需在多個(gè)工具之間切換。

4.團(tuán)隊(duì)協(xié)作與管理

用戶可以為兩個(gè)級(jí)別的成員定義不同的角色:工作區(qū)和項(xiàng)目。可以為團(tuán)隊(duì)成員分配不同的角色,以便他們對(duì)不同的項(xiàng)目具有不同的權(quán)限;或者為每個(gè)項(xiàng)目配置審批工作流,例如指定負(fù)責(zé)此特定項(xiàng)目的特定DBA或QA。

Prisma和Bytebase的區(qū)別在于目標(biāo)受眾。Prisma主要針對(duì)前端/全棧開(kāi)發(fā)人員,而B(niǎo)ytebase更專注于后端和DBA。這兩款產(chǎn)品都提供協(xié)作功能,Prisma專注于單個(gè)項(xiàng)目中開(kāi)發(fā)人員之間的協(xié)作,而B(niǎo)ytebase針對(duì)整個(gè)工程組織,即開(kāi)發(fā)人員和DBA/平臺(tái)工程/運(yùn)營(yíng)團(tuán)隊(duì)。

結(jié)語(yǔ)

如果用戶以個(gè)人身份操作數(shù)據(jù)庫(kù),那么傳統(tǒng)的CLI或GUI SQL客戶端(如Navicat)就足夠了。如果更喜歡與代碼庫(kù)集成,有像Liquebase和Flyway這樣的解決方案。然而,對(duì)于類似Jira或GitLab的GUI和項(xiàng)目協(xié)作功能,可以選擇Prisma和Bytebase。Bytebase是唯一一個(gè)提供組織范圍管理功能的工具,除了使數(shù)據(jù)庫(kù)更改更高效和更安全之外,還可以確保數(shù)據(jù)安全和治理。

原文標(biāo)題:Evolution of Top Database Schema Change Tools,作者:Mila Wu

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2010-03-31 13:47:22

Oralce數(shù)據(jù)庫(kù)

2010-06-07 10:00:45

MySQL數(shù)據(jù)庫(kù)

2020-06-08 10:41:13

云計(jì)算數(shù)據(jù)工具

2025-06-11 08:05:00

Go數(shù)據(jù)庫(kù)遷移開(kāi)發(fā)

2020-02-27 09:00:00

數(shù)據(jù)庫(kù)設(shè)計(jì)工具

2018-08-10 07:50:45

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)踐步驟

2011-05-11 10:26:36

MySQL數(shù)據(jù)庫(kù)無(wú)縫遷移

2021-11-15 08:24:17

數(shù)據(jù)庫(kù)database同步工具

2021-04-09 08:21:25

數(shù)據(jù)庫(kù)索引數(shù)據(jù)

2011-11-10 14:42:11

2022-12-15 15:34:50

數(shù)據(jù)中心云遷移

2022-07-27 08:12:44

SchemaHero云原生

2021-07-07 10:12:08

數(shù)據(jù)庫(kù)工具技術(shù)

2011-09-23 09:09:38

數(shù)據(jù)庫(kù)遷移

2020-08-13 07:42:15

數(shù)據(jù)庫(kù)Flyway代碼

2022-02-10 10:51:35

數(shù)據(jù)庫(kù)

2017-05-27 21:07:24

NFV網(wǎng)絡(luò)功能虛擬化數(shù)據(jù)中心

2014-12-09 14:03:51

甲骨文Oracle數(shù)據(jù)庫(kù)

2019-11-26 09:11:50

數(shù)據(jù)庫(kù)JavaHadoop

2020-06-04 08:11:56

數(shù)據(jù)庫(kù)開(kāi)發(fā)SQL Server數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产欧美精品区一区二区三区 | 日本人爽p大片免费看 | 国产一区二区在线免费播放 | 天天拍天天操 | 日韩福利 | 免费视频一区二区 | 国产精品久久久久9999鸭 | 成人小视频在线 | 69xxx免费| 成av人电影在线 | 国产特黄一级 | 欧美做暖暖视频 | 欧美精品一区在线发布 | 亚洲精品一区在线 | 精品九九九 | 国产精品成人一区二区三区夜夜夜 | 中文字幕成人av | 一区二区三区国产好的精 | 国产精品久久久久久亚洲调教 | 久久久久国产精品一区三寸 | 91免费版在线 | 日本不卡高字幕在线2019 | 自拍偷拍亚洲欧美 | 阿v视频在线观看 | 中文视频在线 | 成人三级av | 一区二区片 | 欧美日韩国产在线 | 欧美一级在线观看 | 中文字幕人成人 | 午夜婷婷激情 | 欧美激情区 | 国产中文字幕av | a级毛片毛片免费观看久潮喷 | 国产一区二区三区日韩 | 99热在线免费 | 99视频在线播放 | av网站免费在线观看 | 婷婷99 | 久久综合狠狠综合久久综合88 | 日韩在线免费电影 |