最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mongodb數(shù)據(jù)庫遷移變更的解決方案

 更新時間:2021年09月02日 10:06:38   作者:TangLyan  
眾所周知mongodb數(shù)據(jù)庫是一個非關系類型的數(shù)據(jù),有著非常靈活和高性能的特點得到了開發(fā)者的喜愛,這篇文章主要給大家介紹了關于mongodb數(shù)據(jù)庫遷移變更的相關資料,需要的朋友可以參考下

前言

在版本迭代過程中,存在數(shù)據(jù)庫變更的幾率,如增加某張表某個字段,刪除某個字段等;​

 缺乏變更歷史的記錄,要么在升級多套不同版本環(huán)境時,需要耗費大量時間去尋找數(shù)據(jù)庫變更記錄以及執(zhí)行腳本;

​ 該方案提供一種數(shù)據(jù)庫變更記錄方式;

​ 使用到開源庫:migrate, 目前已經支持多種不同類型數(shù)據(jù)庫(可視化目前使用的為mongodb,已經支持);

使用

​ migrate提供兩種方式進行變更操作:1. 命令行方式  2. SDK方式(使用Go)

​ 在本方案中使用的為命令行方式(官方文檔)。

安裝

​ 通過GitHub下載最新二進制文件包: github.com/golang-migr

​ 直接解壓則可以使用;

簡單使用

​ 每一次數(shù)據(jù)庫的變更都分為兩種情況:up(升級版本)和down(降級版本);

​ 所以每一次變更記錄的編寫都需要兩個文件,

{version}_{title}.up.{extension}
{version}_{title}.down.{extension}

version為當前的版本號,可使用順序序號或者時間戳進行表示,程序會對第一個'_'前的字符當成版本號;

title用于記錄當前的變更的主題,主要是對用戶有較好的提示作用;

extension: 表示文件擴展名;

舉例如mongodb數(shù)據(jù)庫:

0001_init_database.down.json  
0001_init_database.up.json

在創(chuàng)建遷移文件時,可以使用migrate create 命令進行創(chuàng)建,如

# migrate create [-ext E] [-dir D] [-seq] [-digits N] [-format] NAME
$ migrate create -ext json -dir migrations -seq init_database
~/migrations/000001_init_database.up.json
~/migrations/000001_init_database.down.json

參數(shù)介紹:

  • ext: 文件擴展名;
  • dir:  創(chuàng)建的目錄;
  • seq: 是否以序號模式進行創(chuàng)建;
  • digits: 序號長度(默認為6);
  • format:時間格式。

使用該文件對mirations數(shù)據(jù)庫中的test集合,進行初始化操作;

$ cat migrations/000001_init_database.up.json
[
    {
       "insert": "test",
       "documents": [{"name": "aaa"}]
    }
]
$migrate -verbose -source file://migrations --database mongodb://root:pwd@<數(shù)據(jù)庫IP>:27017/migrations?authSource=admin  up
2021/08/31 14:26:06 Start buffering 1/u init_database
2021/08/31 14:26:08 Read and execute 1/u init_database
2021/08/31 14:26:08 Finished 1/u init_database (read 1.516025172s, ran 75.143261ms)
2021/08/31 14:26:08 Finished after 1.654028624s
2021/08/31 14:26:08 Closing source and database

參數(shù)解釋:

  • verbose: 打印當前變更日志
  • source: 變更文件存放目錄,最好進入本項目的migrations目錄下執(zhí)行, 使用ls可查看當前所有數(shù)據(jù)庫
  • database: 為monogdb連接uri
  • up: 升級  (使用 down 降級)

查看數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)已經插入到了數(shù)據(jù)庫中:

mongos> use migrations;
switched to db migrations
mongos> show collections;
migrate_advisory_lock
schema_migrations
test
mongos> db.test.find()
{ "_id" : ObjectId("612e3f5febb6de55cdeec1de"), "name" : "aaa" }
# 多生成了兩張表,其中schema_migrations為遷移數(shù)據(jù)記錄;
mongos> db.schema_migrations.find();
{ "_id" : ObjectId("612dcb8023fbb5b85368b874"), "version" : 1, "dirty" : false }

修改version能夠控制migrate的升級版本;當本身數(shù)據(jù)庫的版本已經高于最新版本時,可以使用force命令,修改當前數(shù)據(jù)庫遷移的版本號;

$ migrate -verbose -source file://migrations --database mongodb://root:pwd@<數(shù)據(jù)庫IP>:27017/migrations?authSource=admin force 000004
2021/08/31 14:34:52 Finished after 89.470244ms
2021/08/31 14:34:52 Closing source and database
# 查看數(shù)據(jù)庫版本已經修改到了4版本,再次進行up操作則會被告知no change;
mongos> db.schema_migrations.find();
{ "_id" : ObjectId("612dcd8c1e88c95afcb426fe"), "version" : 4, "dirty" : false }

后續(xù)

​ 在項目中維護一個數(shù)據(jù)庫/配置文件變更歷史,將項目重新部署時,能夠通過變更歷史,完成所有改動的變更;無需耗費人力去找相關開發(fā);

到此這篇關于mongodb數(shù)據(jù)庫遷移變更的文章就介紹到這了,更多相關mongodb遷移變更內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決MAC上啟動mongod報錯exiting with code 1的問題

    解決MAC上啟動mongod報錯exiting with code 1的問題

    這篇文章主要介紹了解決MAC上啟動mongod報錯exiting with code 1的問題,本文給大家介紹的非常詳細對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • mongodb三分鐘入門大全

    mongodb三分鐘入門大全

    MongoDB是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的,接下來通過本文給大家介紹mongodb三分鐘入門大全,感興趣的朋友一起看看吧
    2022-01-01
  • 使用MongoDB操作文檔

    使用MongoDB操作文檔

    本文詳細講解了使用MongoDB操作文檔的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • MongoDB數(shù)據(jù)庫設置賬號密碼完整步驟

    MongoDB數(shù)據(jù)庫設置賬號密碼完整步驟

    MongoDB這工具很好用的,頁面美觀,設置賬號密碼也必不可少,下面這篇文章主要給大家介紹了關于MongoDB數(shù)據(jù)庫設置賬號密碼的完整步驟,文中給出了詳細的實例代碼,需要的朋友可以參考下
    2023-05-05
  • mongodb數(shù)據(jù)庫游標的使用淺析

    mongodb數(shù)據(jù)庫游標的使用淺析

    這篇文章主要介紹了mongodb數(shù)據(jù)庫游標的使用,需要的朋友可以參考下
    2014-07-07
  • Java操作MongoDB數(shù)據(jù)庫方法詳解

    Java操作MongoDB數(shù)據(jù)庫方法詳解

    本文給大家分享的是使用Java操作MongoDB的一些基本方法,包含多種數(shù)據(jù)庫的連接方式,增刪改查等方法,非常的實用,有需要的小伙伴可以參考下
    2018-01-01
  • MongoDB常用操作命令大全

    MongoDB常用操作命令大全

    成功啟動MongoDB后,再打開一個命令行窗口輸入mongo,就可以進行數(shù)據(jù)庫的一些操作。輸入help可以看到基本操作命令,只是MongoDB沒有創(chuàng)建數(shù)據(jù)庫的命令,但有類似的命令
    2014-03-03
  • MongoDB基礎入門之創(chuàng)建、刪除集合操作

    MongoDB基礎入門之創(chuàng)建、刪除集合操作

    這篇文章主要給大家介紹了關于MongoDB基礎入門之集合操作的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • MongoDB執(zhí)行mongoexport時的異常及分析(數(shù)字類型的查詢)

    MongoDB執(zhí)行mongoexport時的異常及分析(數(shù)字類型的查詢)

    這篇文章主要給大家介紹了關于MongoDB執(zhí)行mongoexport時的異常及分析(數(shù)字類型的查詢)的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-09-09
  • Linux下MongoDB數(shù)據(jù)庫實現(xiàn)自動備份詳解

    Linux下MongoDB數(shù)據(jù)庫實現(xiàn)自動備份詳解

    這篇文章主要給大家介紹了在Linux系統(tǒng)下下MongoDB數(shù)據(jù)庫實現(xiàn)自動備份的相關資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。
    2017-06-06

最新評論

金溪县| 汤阴县| 台安县| 利辛县| 达拉特旗| 六安市| 罗平县| 财经| 太白县| 手游| 河津市| 固镇县| 沅陵县| 九龙坡区| 城步| 页游| 博白县| 嘉义市| 如皋市| 长宁区| 泸溪县| 崇阳县| 宁明县| 沙湾县| 朝阳县| 正宁县| 澄城县| 乐昌市| 渭南市| 宣城市| 皋兰县| 威远县| 会东县| 内丘县| 虹口区| 崇左市| 武汉市| 天全县| 广州市| 南雄市| 仙桃市|