精品国产亚洲一区二区三区|亚洲国产精彩中文乱码AV|久久久久亚洲AV综合波多野结衣|漂亮少妇各种调教玩弄在线

<blockquote id="ixlwe"><option id="ixlwe"></option></blockquote>
  • <span id="ixlwe"></span>

  • <abbr id="ixlwe"></abbr>

    Facebook 開源 Golang 實體框架 Ent 現(xiàn)已支持 TiDB

      對于后端開發(fā)者來說,一款好用的框架能夠大大提升應用的開發(fā)效率。為了降低開發(fā)者使用 TiDB 的門檻,方便開發(fā)者快速連接到 TiDB,PingCAP也在和合作伙伴一起,逐步完善面向主流開發(fā)語言和框架的連接支持。近日,F(xiàn)acebook 開源的 Golang 實體框架 Ent 完成了對 TiDB 數(shù)據(jù)庫的支持。

      Ent 是一款易于構建和維護應用程序與大數(shù)據(jù)模型的框架。具有以下特點:

      Schema 即代碼:能將任何數(shù)據(jù)庫表建模為 Go 對象;

      輕松地遍歷任何圖形 :可以輕松地運行查詢、聚合和遍歷任何圖形結構;

      靜態(tài)類型和顯式 API:使用代碼生成靜態(tài)類型和顯式 API,查詢數(shù)據(jù)更加便捷;

      多存儲驅(qū)動程序:支持 MySQL、PostgreSQL、SQLite、Gremlin,現(xiàn)在也已經(jīng)支持了 TiDB;

      可擴展:易于擴展和使用 Go 模板自定義。

      下面通過一個 Hello World 的應用示例,來看下如何快速實現(xiàn)一個基于 Ent + TiDB 的應用。

      Hello World 應用示例

      用 Docker 在本地啟動一個 TiDB Server

      現(xiàn)在應該有一個運行的 TiDB 實例,開放了 4000 端口監(jiān)聽。

      在本地拷貝 hello world 的示例 repo

      在這個示例 repo 中定義了一個簡單的 User schema

      然后,連接 Ent 和 TiDB:

      可以看到,在第一行通過一個 MySQL 語句去連接 TiDB Server,因為 TiDB 是兼容 MySQL 的,所以不需要其他特殊的 driver。

      話雖如此,TiDB 和 MySQL 還是有很多不同,尤其是與 Schema 遷移相關的操作,比如 SQL 診斷和遷移規(guī)劃。所以,Atlas 可以自動監(jiān)測出是連接到 TiDB,做相應的遷移處理。

      此外,第七行使用 schema.WithAtlas(true),表示 Ent 是使用“Atlas”作為遷移引擎。Atlas 是 Ent 剛剛發(fā)布的遷移引擎,得益于 Atlas 的最新設計,對新數(shù)據(jù)庫的支持也變得前所未有的簡單。

      最后,新建一條 user 數(shù)據(jù),并保存到 TiDB 中,以用于后需的數(shù)據(jù)讀取和輸出。

      運行這個示例程序:

      在這次快速演練中,成功實現(xiàn)了:

      啟動一個本地的 TiDB 實例;

      連接 Ent 和 TiDB 數(shù)據(jù)庫;

      使用 Atlas 遷移 Ent Schema;

      使用 Ent 從 TiDB 中插入和讀取數(shù)據(jù);

      版本說明

      目前,這個示例應用在 Ent v0.10 和 TiDB v5.4.0 中可以正常運行,Ent 也計劃在未來繼續(xù)拓展對 TiDB 的支持。如果用戶使用其他版本的 TiDB 或者需要幫助,歡迎加入 asktug.com 來交流。如果也有項目希望與 TiDB 適配,歡迎來 GitHub 提交 issue。

      除了 Ent,TiDB 此前已經(jīng)添加了對 GORM 和 go-sql-driver/mysql 的支持,詳情可查看文檔:https://docs.pingcap.com/appdev/dev

    (免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
    任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。 )