ملاحظة: Roundhouse "مهجور"
Roundhouse هي أداة رائعة ، وكنت واحدة من المشاريع الرئيسية لبضع سنوات ، حيث لم يكن أي شخص آخر يحتفظ بها ، وقد وفر لي قيمة كبيرة. ومع ذلك ، كان المشروع موجودًا لسنوات عديدة ، وبدأ في تراكم بعض الديون الفنية التي أصبحت من الصعب العمل معها عند محاولة تقديم ميزات أو إعادة صياغة جديدة.
بعد التفكير في ذلك ، قررت أن أبدأ من الصفر ، وأنشئ خليفة إلى Roundhouse ، بدءًا من الألف إلى اليس أحدث مكتبات الطرف الثالث للاتصال بمختلف قواعد البيانات ، إلخ حكيم مع مثل هذا الاعتماد الكبير. تم استبدال log4net أيضا مع serilog.
لن تختفي Roundhouse بالطبع ، وسيبقى رمز المصدر هنا. ولكن ، لا يوجد تطور نشط من Roundhouse في الوقت الحالي. أواصل رحلتي مع الخلف ، صر. إنه الآن على الإصدار 1.6 ، ويعتبر مستقرًا. إنه في تطور نشط.
يرجى التوجه إلى هناك ، وتجربته. إذا كان يجب أن تكون مكتملة للميزات تقريبًا مع Roundhouse ، ويجب أن تجد أي شيء مفقود ، فيرجى تقديم مشكلة أو إرسال علاقات عامة.
مشروع Roundhouse - إدارة تغيير قاعدة البيانات بشكل صحيح

رخصة
Apache 2.0 - انظر Docs Legal (فقط قانونية في المجلد ZIP)
الوثائق
ويكي
معلومات
ملخص
Roundhouse هو نظام نشر قاعدة بيانات آلي (إدارة التغيير) يتيح لك استخدام التعبيرات الحالية واكتساب المزيد. يعمل حاليًا مع Oracle 1 ، SQL Server (2000/2005/2008/Express) ، Access 1 ، MySQL ، SQLite و PostgreSQL. هناك خطط مستقبلية لقواعد البيانات الأخرى.
يسعى إلى حل كل من مخاوف الصيانة وسهولة النشر. نتبع بعضًا من نفس التعابير مثل أنظمة إدارة قواعد البيانات الأخرى (SQL Scripts) ، لكننا مختلفون في أننا نفكر في مخاوف الصيانة المستقبلية. نريد دائمًا تطبيق بعض البرامج النصية (أي شيء عديمي الجنسية مثل الوظائف ، ووجهات النظر ، والإجراءات المخزنة ، والأذونات) ، لذلك لا يتعين علينا رمي كل شيء في البرامج النصية المتغيرة لدينا. هذا يسعى إلى حل مخاوف التحكم في المصدر في المستقبل. ما مدى حلو عندما يمكنك إصدار قاعدة البيانات وفقًا لإصدار التحكم الحالي في المصدر؟
1) فقط على Full-Framework على Windows ، وليس على إصدار أداة Global Tool Core Core Core.
البدء مع Roundhouse
التنزيلات
يمكنك تنزيل Roundhouse من https://github.com/chucknorris/roundhouse/releases
يمكنك أيضًا الحصول على نسخة من خادم الإنشاء على 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 Package Manager Type Console
install-package roundhouse
- يوجد أيضًا
roundhouse.lib
و roundhouse.msbuild
و roundhouse.refreshdatabase
الشوكولاتة
الشوكولاتة مثل APT-GET ، ولكن للنوافذ! هذه طريقة بديلة للحصول على الإصدار الحالي من Roundhouse إلى جهازك بسرعة!
- اكتب
cinst roundhouse
- ثم من أي مكان يمكنك كتابة
rh [options]
أداة Dotnet Core Global (Windows ، Linux ، MacOS ، إلخ)
- اكتب
dotnet tool install -g dotnet-roundhouse
- ثم من أي مكان يمكنك كتابة
rh [options]
يمكنك قراءة المزيد حول ما يحدث في الخلفية على سبيل المثال هنا: https://natemcmaster.com/blog/2018/05/12/dotnet-global-tools/ ، ولكن باختصار ، يقوم بتثبيت الثنائيات على ~/.dotnet/tools
.
ستحتاج إلى تثبيت Dotnet Core على صندوقك حتى يعمل. يمكنك الحصول عليها هنا: https://dot.net.
Docker: أداة Dotnet Core Global
يمكنك بسهولة دمج Roundhouse في البنية التحتية Docker الحالية. استخدم Docker Compose ، أو فقط اسحبه لأسفل مباشرة وقم بتشغيله. ربما يجب أن تبني على الصورة ، وإضافة تخصيصاتك الخاصة ، حسب الاقتضاء. تحتوي صورة Docker على توزيع Dotnet Core Global Tool لـ Roundhouse في صورة قاعدة Debian 10 Linux.
- اكتب
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).
النمو
يستخدم نظام الإنشاء UpperCut ، ولكن ربما لن يتم الحفاظ على هذا للمضي قدمًا. سنحاول توحيد المزيد من أدوات البناء "الدفق الرئيسي" مثل MSBuild و PowerShell. لا تزال هناك بعض بقايا العليا في الكود المصدري (esp. في مجلد build
) ، ولكن من المحتمل أن تتم إزالة هذا في المستقبل القريب.
للعمل مع سطر الأوامر ، ستحتاج إلى ما يلي في طريقك:
- MS Build
- gitversion (أسهل لتشغيل choco تثبيت gitversion.portable. أنت تدير الشوكولاتة أليس كذلك؟)
- سطر أوامر Nuget (أسهل لتشغيل Choco تثبيت nuget.commandline. أنت تدير الشوكولاتة أليس كذلك؟)
مهم
ملاحظة: إذا كنت تبحث عن المصدر - يرجى تشغيل Build.PS1 قبل فتح الحل. إنه يستخرج ملفات keywords.txt
اللازمة لـ Ilmerge-ing mysql dlls ، وسيشتكي البناء بدونها.
متطلبات
- .NET Framework 4.6.1 (للنسخة الإطار الكاملة) ، أو
- .NET Core 2.1+ (لتوزيع Dotnet Core)
- وصول SA إلى SQL Server (لإنشاء أو حذف)
- تغيير الوصول إلى قاعدة البيانات (لكل شيء آخر)
يتبرع
تبرعات مقبولة - إذا كنت تستمتع باستخدام هذا المنتج أو أن يوفر لك الوقت والمال بطريقة ما ، فيرجى التفكير في التبرع.
إنه يساعد على تحديث المنتج ، ويدفع لاستضافة الموقع ، وما إلى ذلك.
ملاحظات الإصدار
يرجى الاطلاع على إصدارات سجلات الإصدار الكاملة
1.0.2
إصدار Bugfix
خطأ ثابت في تغليف أداة dotnet الأساسية ، وخلل آخر مع مسارات مجلد السجل والقولون في سلسلة الاتصال.
1.0.1
دمج إصلاح الإصلاح
1.0.0
Cross-Platform Dotnet Core و Dotnet Standard ++
إطلاق تكنولوجي كبير. يعمل Roundhouse الآن على .NET Core بالإضافة إلى إطار عمل .NET القديم الجيد.
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
- تقسيم الملفات التي تبدأ بشكل صحيح بتفجير
- احترام علم المعاملة
- تحسين التسجيل
- أضاف التبديل -WarnandignoreOnOnetimescriptChanges
إصلاحات الأخطاء
- فقط أعد إعادة المحاولة على أخطاء اتصال SQL
- تعامل بشكل صحيح
0.8.6
التحسينات
- استخدم GIT كمستودع رسمي. (mpareja)
- ترقية العلوي إلى الإصدار 1.4.2. (FerventCoder)
- استعادة قاعدة البيانات: استخدم استعادة قيمة مهلة محددة. (Icetoast - سحب #90)
- تجاهل تغييرات تنسيق EOL عند اكتشاف تغييرات البرنامج النصي. (لاهما - سحب #104)
- تشمل بيانات طباعة SQL في سجل التصحيح. (FerventCoder - العدد رقم 68)
- قم بتضمين بيان يتم تشغيله في السجل عند حدوث خطأ. (FerventCoder - العدد رقم 66)
- تمت إضافة دليل "RunBeforeup" في أي وقت. (Cdrexle - سحب #51)
- دعم حل الإصدار من ملف نصي. (mpareja - سحب #50 ، سحب #55)
- إضافة خيار لإيقاف نسخ البرامج النصية إلى دليل "electRan". (لاهما - سحب #47)
- سيؤدي الآن WarnonOnetImpschange إلى إعادة تغيير البرامج النصية لمرة واحدة. (BiggerNoise - سحب #35)
- ترقية nhibernate إلى الإصدار 3.3.2. (Drusellers)
- ترقية fucucore ، htmltags و structuremap. (Drusellers)
إصلاحات الأخطاء
- SQL Batch Parser: التعامل مع تعليقات التدريب ، اقتباسات واحدة. (mpareja - سحب #108)
- SQL BATCH PARSER: إصلاح شنق. (Andersmalmgren - سحب #100)
- رمز استبدال: الحفاظ على قضية الرموز التي لا مثيل لها. (MPAREJA - سحب #65)
- لم تعد البرامج النصية SQL مقطوعة إلى 4000 حرف. (Charoco ، FerventCoder - سحب #61)
- أوراكل: إصلاح معالجة القيم الخالية. (Ringwall - سحب #59 ، العدد رقم 58)
- إصدار ملف البرنامج النصي: إصلاح الاستثناء. (مايكل كوبالي - العدد رقم 68 على رمز Google)
- فقط قم بتغيير وضع استرداد DB إذا تم إخباره صراحةً. (FerventCoder - العدد رقم 69 على رمز Google)
- تم إصلاح مفتاح سطر الأوامر تصحيح التصحيح. (FerventCoder - العدد رقم 40)
- تأكد من استخدام الإصدار 1.2.10 من log4net عند تثبيت حزم nuget. (FerventCoder - العدد رقم 41)
- إصلاح: تحسين تسجيل استثناءات RH. (Torkelo - سحب #60)
كسر التغييرات
- سيقوم Roundhouse بتغيير وضع استرداد DB إذا تم ضبط خيار
recoverymode
بشكل صريح على simple
أو full
. في الماضي ، سوف يكون Roundhouse افتراضيًا إلى full
ولكنه لن يضبط وضع الاسترداد إلا أثناء إنشاء/استعادة قاعدة البيانات. إذا اعتمدت على Roundhouse لإنشاء/استعادة قاعدة البيانات لك ولا تريد استخدام خادم قاعدة البيانات الافتراضي ، فيجب عليك تحديد خيار وضع الاسترداد.
0.8.5
- إصلاح: keynotfoundException في nhibernatesessionfactorybuilder. راجع [العدد 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) ويعطي خطأ في النقل. انظر التفاصيل رقم 12 (R357)
- إصدار إصدار جديد! - إصدار رقم البرنامج النصي. انظر التفاصيل رقم 25 (R356)
- الإصلاح: يجب أن يقوم برنامج إنشاء البرنامج النصي المخصص بتقسيم بيانات الدُفعات. انظر التفاصيل رقم 22 (R353)
- مجلد ترحيل جديد! RunAfterCreatedatabaseFolder - يعمل مرة واحدة فقط وفقط بعد إنشاء قاعدة بيانات. هذا يعمل مع مجموعة محدودة من أنواع قاعدة البيانات في الوقت الحالي. يرجى اختبار ما إذا كنت تخطط لاستخدام. انظر التفاصيل رقم 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)
- الإصلاح: Migrate لا يحاول تكوين log4net الآن (يسبب المشكلات مع المكتبات التي تفعل) (R326)
- مجلد ترحيل جديد! مجلد الفهارس المتاح الآن (R327)
- مجلد ترحيل جديد! مجلد AlterDatabase متاح الآن. انظر التفاصيل رقم 6 (R324)
- إصلاح: عينة مضمنة لأوراكل لا تعمل. راجع [العدد 55] (http://code.google.com/p/roundhouse/issues/detail؟id=55) للحصول على التفاصيل. (R322)
- يجب أن تستخدم خيارات الاستعادة المخصصة استبدال الرمز المميز (R321)
- دعم MySQL! . شكرا ديان. انظر التفاصيل رقم 3 (R320)
0.8.0.300
- تقوم RH الآن باستبدال الرمز المميز في ملفات SQL باستخدام '{{propertyName}}'. راجع [العدد 33] (http://code.google.com/p/roundhouse/issues/detail؟id=33) للحصول على التفاصيل. (R299)
- قم دائمًا بتشغيل الملفات التي تحتوي على ". everytime." في الاسم. راجع [العدد 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 في جداول التتبع الخاصة بها. راجع [العدد 46] (http://code.google.com/p/roundhouse/issues/detail؟id=46) للحصول على التفاصيل. (R274)
- يمكن أن تأخذ Restorefropath مسارًا نسبيًا. (R269)
- يمكن لـ RH الآن ترقية الداخلية دون تفاعل المستخدم. راجع [العدد 40] (http://code.google.com/p/roundhouse/issues/detail؟id=40) للحصول على التفاصيل. (R268)
- يتم إهمال مهام MSBuild / NANT ولم تعد مدمن مخدرات. يرجى استخدام وحدة التحكم والاتصال بها من مهامك. (R268)
- RH لديه دعم مختلف مع تحديثات مخطط Nhibernate/تحديثات (R267 - فرع ، R268)
- يتم الآن استخدام Fluentnhibernate و nhibernate للداخلية (R267 - Branch ، R268)
- تم إهمال SMO وإزالته (R203 - Branch ، R268)
- الأحجار الكريمة وبناء ترقيات ، يا بلدي! (R259)
- SQL2000 إلى 2005 هو الآن انتقال سلس. (R221)
- إصلاح: SQL2000 - Scriptsrun الآن مرجع الإصدار بشكل صحيح للمفتاح الأجنبي. (R220)
- إصلاح: يجب تهيئة الاتصال قبل سؤال قاعدة البيانات إذا كان يدعم معاملات DDL. (R215)
- إصلاح: أسماء المستخدمين الكبيرة عند التشغيل مع Oracle. (R200)
- RH لديه دعم مختلف مع Redgate. انظر نموذج المشروع للحصول على التفاصيل. (R197)
- إصلاح: يقوم Scrips Run Errors الآن بتحديث رقم الإصدار والمسار مع تشغيل التبعية على البرامج النصية. يسمح لها بالانتهاء أثناء تشغيل المعاملات والاستمرار في التقاط الأخطاء. (R196)
- إصلاح: التقاط التغييرات الخاطئة إلى ملفات DDL/DML (UP) في جدول أخطاء تشغيل البرنامج النصي. (R191)
- إضافة سلسلة اتصال المسؤول للقيام بالمهام الإدارية. (R190)
ملاحظات الإصدار السابقة
ملاحظات الإصدارات السابقة على الويكي.
الاعتمادات
Uppercut - التصميم الآلي (البناء الآلي في 10 دقائق أو أقل؟!) http://projectuppercut.org