注意:回報室被“遺棄”
Roundhouse是一個很棒的工具,我是幾年來的主要維護人員之一,因為沒有其他人維護它,它為我提供了巨大的價值。但是,該項目已經存在了很多年,並且已經開始產生一些技術債務,這些債務在試圖介紹新功能或重構時很難處理。
經過一些想法後,我決定從零開始,並創建一個後繼者到Roundhouse,從Modern .NET上開始(始於2021年的.NET 6,現在是.NET 8),跨平台,使用最新的第三方庫可以連接到各種數據庫等。我刪除了Nhibernate作為依賴性,因為它僅用於創建版本工作表,並且似乎有點過分誇張,而且很難推動快速前進的技術。明智的依賴性如此之大。 Log4net也被Serilog替換。
Roundhouse當然將永遠不會消失,源代碼將留在這裡。但是,目前尚無主動發展。我繼續與繼任者Grate一起旅行。現在是1.6版,被認為是穩定的。這是積極發展的。
請前往那兒,然後嘗試一下。如果應該與Roundhouse幾乎完全完整,如果您找到任何缺少的東西,請提交問題或提交PR。
項目回報室 - 數據庫更改管理正確完成

執照
Apache 2.0-請參閱文檔 Legal(僅在郵政編碼中合法)
文件
Wiki
資訊
概述
Roundhouse是一種自動化數據庫部署(變更管理)系統,可讓您使用當前的成語並獲得更多收益。目前與Oracle 1 ,SQL Server(2000/2005/2008/Express),Access 1 ,MySQL,SQLite和PostgreSQL一起使用。還有其他數據庫的未來計劃。
它旨在解決維護問題和易於部署的問題。我們遵循與其他數據庫管理系統(SQL腳本)相同的成語,但我們的不同之處在於,我們考慮了未來的維護問題。我們希望始終應用某些腳本(任何無狀態的函數,視圖,存儲過程和權限),因此我們不必將所有內容都投入到更改腳本中。這旨在解決未來的來源控制問題。當您可以根據當前的源控製版本版本版本時,它的甜蜜有多甜?
1)僅在Windows上的全幀作品上,而不在跨平台.NET核心全局工具版本上。
起步從迴旋處開始
下載
您可以從https://github.com/chucknorris/roundhouse/releases下載Roundhouse
您還可以從https://ci.appveyor.com/project/chucknorris/roundhouse/build/artifacts獲得從構建服務器獲得副本。
寶石(未更新為0.9.0及以上,對不起)
如果您安裝了Ruby 1.8.6+(和GEMS 1.3.7+),則可以將Roundhouse當前發行到您的機器上!
- 鍵入
gem install roundhouse
- 然後,您可以在任何地方輸入
rh [options]
nuget
使用Nuget,您可以將當前的Roundhouse發佈到您的應用程序中!
- 在Visual Studio軟件包管理器控制台類型
install-package roundhouse
中 - 還有
roundhouse.lib
, roundhouse.msbuild
和roundhouse.refreshdatabase
巧克力
巧克力就像很適合,但適合窗戶!這是將Roundhouse當前發佈到您的機器上的替代方法!
- 類型
cinst roundhouse
- 然後,您可以在任何地方輸入
rh [options]
dotnet核心全局工具(Windows,Linux,MacOS等)
- 鍵入
dotnet tool install -g dotnet-roundhouse
- 然後,您可以在任何地方輸入
rh [options]
您可以在此處閱讀有關背景中發生的情況的更多信息:https://natemcmaster.com/blog/2018/05/05/12/dotnet-global-tools/,但簡而言之,它將二進製文件安裝到您的~/.dotnet/tools
夾。
您的盒子上需要安裝dotnet核心才能工作。您可以在這裡獲取:https://dot.net。
Docker:Dotnet核心全球工具
您可以輕鬆地將Roundhouse集成到現有的Docker基礎架構中。使用Docker組成,或直接將其拉下並運行它。您可能應該基於圖像,並及時添加自己的自定義。 Docker映像具有Debian 10 Linux Base圖像中Roundhouse的dotnet核心全局工具分佈。
- 類型
docker pull dotnetroundhouse/roundhouse
- 類型
docker run dotnetroundhouse/roundhouse
來源
這是到達我們正在做的事情的出血邊緣的最佳方法。
- 克隆源到您的計算機。
git clone git://github.com/chucknorris/roundhouse.git
- 類型
cd roundhouse
- 鍵入
git config core.autocrlf false
以保持線路結尾。 - 類型
git status
。您不應該看到任何要更改的文件。 - 運行
build.ps1
。注意:您必須在路徑上有git(打開常規命令行並鍵入git)。
發展
構建系統一直在使用尺寸,但這可能無法維持。我們將嘗試標準化更多的“主流”構建工具,例如MSBuild和PowerShell。源代碼(尤其是在build
文件夾中)中仍然有一些命令,但這可能會在不久的將來被刪除。
要使用命令行,您將需要以下路徑:
- MS構建
- gitversion(最容易運行巧克力安裝gitversion.portable。
- nuget命令行(最容易運行choco install nuget.commandline。您正在運行巧克力,不是嗎?)
重要的
注意:如果您正在查看源 - 請在打開解決方案之前運行build.ps1。它提取了iLmerge-ing mysql dll所需的keywords.txt
。
要求
- .NET Framework 4.6.1(用於全框架版本)或
- .NET CORE 2.1+(對於dotnet核心分佈)
- SA訪問SQL Server(用於創建或刪除)
- 更改對數據庫的訪問(對於其他所有內容)
捐
接受捐款 - 如果您喜歡使用此產品,或者它以某種方式節省了時間和金錢,請考慮捐款。
它有助於保留更新的產品,為網站託管付費。
發行說明
請參閱完整髮行日誌的版本
1.0.2
BugFix版本
修復了dotnet核心工具的包裝中的錯誤,以及另一個帶有日誌文件夾路徑的錯誤和連接字符串中的冒號。
1.0.1
合併釋放修復
1.0.0
跨平台dotnet核心和dotnet標準++
大技術釋放。 Roundhouse除了良好的舊.NET框架外,現在還使用.NET Core。
0.9.1
兩個錯誤文件
在0.9.0發布後,用戶確定了兩個重要的錯誤。這些是在快速釋放中固定的。
(有關完整髮行說明,請參見發行)
0.9.0
專注於現代化工具
Roundhouse在工具方面有一些追趕。依賴於.NET 3.5,舊的,基於Nant的構建鍊等。我們正在開始這項工作。它尚未完成,而是在途中。功能的吹牛不是很多,但是RH.EXE現在應該能夠在Windows Server 2016開箱即用,因為它不再依賴.NET 3.5。
(有關完整髮行說明,請參見發行)
0.8.8
趕上拉的請求(請參閱發行說明)
0.8.7
我的天啊!!這是一個圓形釋放!!
已經很長時間了。我不想陷入撰寫完美的發行說明中,所以我總結了《犯罪歷史》的最後四年。我希望沒有人對我未能具體承認您的貢獻感到沮喪。我打算將來做得更好。
增強
- 添加了以在交易範圍之外運行腳本的選項
- 處理Azure連接字符串
- 正確拆分以分離器開頭的文件
- 尊重交易標誌
- 改進的記錄
- 添加了開關 - warnandignoreoneonEnetimesscripsChanges
錯誤修復
- 僅在SQL連接錯誤上重試
- 正確處理Postgres連接處置錯誤
0.8.6
增強
- 使用git作為官方存儲庫。 (mpareja)
- 升級尺寸為1.4.2版。 (狂熱的編碼器)
- 數據庫還原:使用還原特定的超時值。 (Icetoast-拉#90)
- 當檢測腳本更改時,忽略EOL格式會發生變化。 (拉瑪 - 拉#104)
- 在調試日誌中包括SQL打印語句。 (FerventCoder-第68期)
- 當發生錯誤時,請在日誌中運行語句。 (FerventCoder-第66期)
- 隨時添加了“ runbeforeup”目錄。 (CDREXLE-拉#51)
- 支持從文本文件解析版本。 (mpareja-拉#50,拉#55)
- 添加選項以將復制腳本關閉為“ itempran”目錄。 (拉瑪 - 拉#47)
- WarnonOnetimesscriptChange現在將導致更改的一次性腳本重新運行。 (Bightnoise-拉#35)
- 將NHibernate升級到版本3.3.2。 (drusellers)
- 升級fubucore,htmltags和structuremap。 (drusellers)
錯誤修復
- SQL批處理解析器:處理培訓評論,單語引號。 (mpareja-拉#108)
- SQL批處理解析器:修復掛起。 (Andersmalmgren-拉#100)
- 代幣替換器:保存無與倫比的令牌案例。 (mpareja-拉#65)
- SQL腳本不再被截斷為4000個字符。 (Charoco,FerventCoder-拉#61)
- Oracle:修復零值的處理。 (rdingwall-拉#59,問題#58)
- 腳本文件版儀:修復異常。 (Michael Kobaly- Google代碼上的第68期)
- 如果明確告知,僅更改DB恢復模式。 (FerventCoder- Google代碼上的第69期)
- 修復了調試命令行開關。 (FerventCoder-第40期)
- 確保在安裝Nuget軟件包時使用Log4net的1.2.10版。 (FerventCoder-問題#41)
- 修復:改進RH例外的日誌記錄。 (Torkelo-拉#60)
打破變化
- 如果將
recoverymode
模式選項明確設置為simple
或full
,Roundhouse將更改DB恢復模式。過去,Roundhouse默認為full
,但只能在創建/還原數據庫時設置恢復模式。如果您依靠Roundhouse為您創建/還原數據庫,並且不希望使用數據庫服務器默認值,則應指定恢復模式選項。
0.8.5
- 修復:NhibernateSessionFactoryBuilder中的KeynotFoundException。有關詳細信息,請參見[第59期](http://code.google.com/p/roundhouse/issues/detail?id=59)。 (R361)
- sqlite支持! 。請參閱詳細信息#21(R360)
- PostgreSQL支持!謝謝Siimv!請參閱詳細信息#30(R359)
- 新配置開關! SearchAllSubDirectoriesInsteadOftraverse-所有遷移子文件夾默認情況下遍歷並按順序按每個文件夾的腳本運行。此選項同時運行子文件夾中的所有項目。謝謝Siimv!請參閱詳細信息#31(R359)
- 修復:交易無法與還原合作。請參閱詳細信息#26(R357)
- 修復:用SQL Server修復了一個令人討厭的錯誤,該錯誤試圖持有連接(干擾Drop/Create Mode)並給出傳輸錯誤。請參閱詳細信息#12(R357)
- 新版本的解析器! - 腳本編號版本。請參閱詳細信息#25(R356)
- 修復:自定義創建腳本應拆分批處理語句。請參閱詳細信息#22(R353)
- 新的遷移文件夾! RunafterCreateat -atabaseFolder-僅運行一次,並且僅在創建數據庫之後才運行。目前,這與有限的數據庫類型相關。請測試您是否打算使用。請參閱詳細信息#20(R351)
- 現在,幾乎所有東西都被內化了。請參閱詳細信息#8和#15(R350)
- 修復:無法使用快照丟棄數據庫。請參閱詳細信息#13(R349)
- 創建數據庫自定義腳本可以處理文件路徑。請參閱詳細信息#17(R348)
- 修復:SQL Server 2000需要創建其所有表。請參閱詳細信息#18(R346)
- RH組件現在已簽名。請參閱詳細信息#14(R342)
- 修復:刪除了臨時日誌位置。請參閱詳細信息#7(R340)
- 新配置開關! DisableTokenReplacement-代幣更換應配置。有關詳細信息,請參見第56期。 (R339)
- 修復:令牌替換器只能替換為其找到的項目。有關詳細信息,請參見第56期。 (R339)
- 可能的破壞變化!文件編碼將始終嘗試以UTF-8的形式讀取文件,但落後於ANSI。如果您在ANSI中進行編碼,則不會出錯。有關詳細信息,請參見第39期。 (R337)
- 尚未指定文件時,還要恢復對將文件移至默認位置有些聰明。請參閱詳細信息#9或第13期(R336)
- 修復:不要在空文本上運行令牌替換。請參閱詳細信息#10(R330)
- 自定義腳本還運行令牌更換(R321)
- 新配置開關!兩個新開關可用 - CommandTimeOut和CommandTimeOutadMin! (R329)
- 修復:遷移不嘗試立即配置log4net(導致帶有庫的問題)(R326)
- 新的遷移文件夾!現在可用索引文件夾(R327)
- 新的遷移文件夾! AlterDatabase文件夾現在可用。請參閱詳細信息#6(R324)
- 修復:包括甲骨文的樣本不起作用。有關詳細信息,請參見[第55頁](http://code.google.com/p/roundhouse/issues/detail?id=55)。 (R322)
- 自定義還原選項應使用令牌更換(R321)
- mysql支持! 。謝謝Diyan。請參閱詳細信息#3(R320)
0.8.0.300
- RH現在使用'{{propertyName}}'在SQL文件中進行代幣替換。有關詳細信息,請參見[第33頁](http://code.google.com/p/roundhouse/issues/detail?id=33)。 (R299)
- 始終運行具有“每次。”的文件。以名稱。有關詳細信息,請參見[第51條](http://code.google.com/p/roundhouse/issues/detail?id=51)。 (R299)
- Roundhouse將DLL寄給嵌入。有關詳細信息,請參見[第44頁](http://code.google.com/p/roundhouse/issues/detail?id=44)。有關詳細信息,它具有半浮動接口 - 請參見(https://gist.github.com/977990)。 (R299)
- 修復:特定於環境的文件在其他環境是名稱的一部分時運行的其他環境(即使用測試運行Bobtest)。有關詳細信息,請參見[第50條](http://code.google.com/p/roundhouse/issues/detail?id=50)。 (R299)
- 添加了其他隨時運行腳本文件夾之後運行的文件夾。有關詳細信息,請參見#1。 (R297)
- 修復腳本修改的每次錯誤兩次。有關詳細信息,請參見#5。 (R296)
- 示例現在是發行文件夾中的一個項目。 (R287)
- MSBUILD再次可用。 (R288)
0.7.0.281
- 修復了使用連接字符串的一些問題。現在,您應該只能提供連接字符串而不是服務器/數據庫。
0.7.0.276
- 修復了其跟踪表中與Roundhouse ID列的整理問題。有關詳細信息,請參見[第46頁](http://code.google.com/p/roundhouse/issues/detail?id=46)。 (R274)
- RestoreFrompath可以採用相對路徑。 (R269)
- RH現在無需用戶互動即可升級其內部設備。有關詳細信息,請參見[第40版](http://code.google.com/p/roundhouse/issues/detail?id=40)。 (R268)
- MSBUILD / NANT任務已棄用,不再連接。請使用控制台並從您的任務中調用它。 (R268)
- RH具有NHIBERNATE架構生成/更新(R267 -Branch,R268)的支持差異
- 現在正在使用Fluentnhibrenate和Nhibrenate進行內部(R267-分支,R268)
- SMO被棄用和刪除(R203-分支,R268)
- 寶石和建立昇級,哦,我的! (R259)
- SQL2000到2005現在是一個平穩的過渡。 (R221)
- 修復:SQL2000 -ScriptSrun現在正確地引用了外鍵的版本。 (R220)
- 修復:應在詢問數據庫是否支持DDL事務之前初始化連接。 (R215)
- 修復:使用Oracle運行時大寫用戶名。 (R200)
- RH與Redgate有不同的支持。有關詳細信息,請參見示例項目。 (R197)
- 修復:SCRIPS運行錯誤現在更新版本編號和路徑,而路徑與運行的腳本有關。允許在事務運行期間完成並仍會捕獲錯誤。 (R196)
- 修復:捕獲腳本運行錯誤表中DDL/dml(UP)文件的錯誤圖形更改。 (R191)
- 添加了管理連接字符串以執行管理任務。 (R190)
先前的發行說明
先前的發行筆記在Wiki上。
學分
上線 - 自動化構建(在10分鐘或更短的時間內自動化?!)http://projectuppercut.org