Catatan: Roundhouse "ditinggalkan"
Roundhouse adalah alat yang luar biasa, dan saya adalah salah satu pengelola utama selama beberapa tahun, karena tidak ada orang lain yang mempertahankannya, dan itu memberikan nilai besar bagi saya. Namun, proyek ini telah ada selama bertahun -tahun, dan telah mulai memperoleh beberapa hutang teknis yang menjadi sulit untuk dikerjakan ketika mencoba memperkenalkan fitur atau refactor baru.
Setelah memikirkannya, saya memutuskan untuk memulai dari nol, dan menciptakan penerus ke Roundhouse, mulai dari bawah ke atas pada .NET modern (dimulai pada .NET 6 pada tahun 2021, sekarang di .NET 8), lintas platform, menggunakan Perpustakaan pihak ke -3 terbaru untuk terhubung ke berbagai database, dll. Saya menghapus Nhibernate sebagai ketergantungan, karena hanya digunakan untuk membuat tabel versi, dan sepertinya sedikit berlebihan, dan sulit untuk bergerak maju teknologi maju cepat ke depan dengan cepat ke depan Bijaksana dengan ketergantungan yang begitu besar. Log4net juga diganti dengan serilog.
Roundhouse tentu saja tidak akan pernah hilang, dan kode sumber akan tetap di sini. Tapi, tidak ada pengembangan aktif Roundhouse untuk saat ini. Saya melanjutkan perjalanan saya dengan penggantinya, Garut. Sekarang di versi 1.6, dan dianggap stabil. Itu dalam pengembangan aktif.
Silakan menuju ke sana, dan coba. Jika harus hampir fitur-lengkap dengan Roundhouse, dan jika Anda menemukan sesuatu yang hilang, silakan ajukan masalah, atau kirimkan PR.
Project Roundhouse - Manajemen Perubahan Basis Data dilakukan dengan benar

LISENSI
Apache 2.0 - Lihat Docs Legal (Just Legal di Folder Zip)
Dokumentasi
Wiki
Info
Ringkasan
Roundhouse adalah sistem penyebaran database otomatis (manajemen perubahan) yang memungkinkan Anda menggunakan idiom Anda saat ini dan mendapatkan lebih banyak lagi. Saat ini bekerja dengan Oracle 1 , SQL Server (2000/2005/2008/Express), Access 1 , MySQL, SQLite dan PostgreSQL. Ada rencana masa depan untuk database lain.
Ini berupaya menyelesaikan masalah pemeliharaan dan kemudahan penyebaran. Kami mengikuti beberapa idiom yang sama dengan sistem manajemen basis data lainnya (skrip SQL), tetapi kami berbeda karena kami berpikir tentang masalah pemeliharaan di masa depan. Kami ingin selalu menerapkan skrip tertentu (apa pun tanpa kewarganegaraan seperti fungsi, tampilan, prosedur tersimpan, dan izin), jadi kami tidak perlu membuang semuanya ke dalam skrip perubahan kami. Ini berupaya memecahkan masalah kontrol sumber di masa depan. Seberapa manis saat Anda dapat versi basis data sesuai dengan versi kontrol sumber Anda saat ini?
1) Hanya pada kerangka penuh di Windows, bukan pada versi Cross-Platform .NET Core Global Tool.
Memulai dengan Roundhouse
Unduhan
Anda dapat mengunduh Roundhouse dari https://github.com/chucknorris/roundhouse/releases
Anda juga dapat memperoleh salinan dari server build di https://ci.appveyor.com/project/chucknorris/roundhouse/build/artifacts.
Permata ( tidak diperbarui untuk 0.9.0 dan di atas, maaf )
Jika Anda menginstal Ruby 1.8.6+ (dan Permata 1.3.7+), Anda bisa mendapatkan rilis Roundhouse saat ini ke mesin Anda dengan cepat!
- Ketik
gem install roundhouse
- Kemudian dari mana saja Anda dapat mengetikkan
rh [options]
Nuget
Dengan Nuget Anda bisa mendapatkan rilis Roundhouse saat ini dengan cepat ke aplikasi Anda!
- Di Visual Studio Package Manager Tipe Konsol
install-package roundhouse
- Ada juga
roundhouse.lib
, roundhouse.msbuild
, dan roundhouse.refreshdatabase
Cokelat
Cokelat seperti apt-get, tetapi untuk windows! Ini adalah metode alternatif untuk mendapatkan rilis Roundhouse saat ini ke mesin Anda dengan cepat!
- Ketik
cinst roundhouse
- Kemudian dari mana saja Anda dapat mengetikkan
rh [options]
Alat Global Dotnet Core (Windows, Linux, MacOS, dll)
- Ketik
dotnet tool install -g dotnet-roundhouse
- Kemudian dari mana saja Anda dapat mengetikkan
rh [options]
Anda dapat membaca lebih lanjut tentang apa yang terjadi di latar belakang misalnya: https://natemcmaster.com/blog/2018/05/12/dotnet-global-tools/, tetapi singkatnya, menginstal binari ke ~/.dotnet/tools
Anda ~/.dotnet/tools
.
Anda perlu Dotnet Core diinstal pada kotak Anda agar ini berfungsi. Anda bisa mendapatkannya di sini: https://dot.net.
Docker: Alat Global Inti Dotnet
Anda dapat dengan mudah mengintegrasikan Roundhouse dalam infrastruktur Docker yang ada. Gunakan Docker Compose, atau tarik saja langsung dan jalankan. Anda mungkin harus membangun gambar, dan menambahkan kustomisasi Anda sendiri, sebagaimana mestinya. Gambar Docker memiliki Dotnet Core Global Tool Distribution Roundhouse dalam gambar dasar 10 Linux.
- Jenis
docker pull dotnetroundhouse/roundhouse
- Jenis
docker run dotnetroundhouse/roundhouse
Sumber
Ini adalah cara terbaik untuk sampai ke tepi pendarahan dari apa yang kami lakukan.
- Kloning sumber ke mesin Anda.
git clone git://github.com/chucknorris/roundhouse.git
- Ketik
cd roundhouse
- Ketik
git config core.autocrlf false
. - Ketik
git status
. Anda tidak boleh melihat file apa pun untuk diubah. - Jalankan
build.ps1
. Catatan: Anda harus memiliki git di jalur (buka baris perintah biasa dan ketik git).
Berkembang
Sistem build telah menggunakan Uppercut, tetapi ini mungkin tidak akan dipertahankan ke depan. Kami akan mencoba untuk menstandarkan lebih banyak alat pembuatan "aliran utama" seperti MsBuild dan PowerShell. Masih ada beberapa sisa pukulan dalam kode sumber (khususnya di folder build
), tetapi ini mungkin akan dihapus dalam waktu dekat.
Untuk bekerja dengan baris perintah, Anda akan membutuhkan yang berikut di jalur Anda:
- MS Build
- Gitversion (termudah untuk menjalankan choco install gitversion.portable. Anda menjalankan cokelat bukan?)
- Nuget Command Line (termudah untuk menjalankan choco instal nuget.commandline. Anda menjalankan cokelat bukan?)
PENTING
Catatan: Jika Anda melihat sumbernya - silakan jalankan build.ps1 sebelum membuka solusinya. Ini mengekstrak file keywords.txt
yang dibutuhkan untuk Ilmerge-ing mysql dlls, dan build akan mengeluh tanpa mereka.
PERSYARATAN
- .NET Framework 4.6.1 (untuk versi kerangka kerja lengkap), atau
- .NET Core 2.1+ (untuk distribusi inti dotnet)
- Akses SA ke SQL Server (untuk pembuatan atau penghapusan)
- Ubah akses ke database (untuk yang lainnya)
MENYUMBANGKAN
Donasi Diterima - Jika Anda menikmati menggunakan produk ini atau telah menghemat waktu dan uang Anda, silakan pertimbangkan untuk memberikan donasi.
Ini membantu menjaga agar produk diperbarui, membayar untuk hosting situs, dll.
Catatan Rilis
Silakan lihat rilis untuk log rilis lengkap
1.0.2
Rilis Bugfix
Memperbaiki bug dalam pengemasan alat dotnet core, dan bug lain dengan jalur folder log dan usus besar dalam string koneksi.
1.0.1
Perbaikan rilis gabungan-error
1.0.0
Cross-platform dotnet core dan dotnet standar ++
Pelepasan teknologi besar. Roundhouse sekarang berjalan di .NET Core selain kerangka kerja. NET yang bagus.
0.9.1
Dua perbaikan bug
Setelah rilis 0.9.0, pengguna mengidentifikasi dua bug yang signifikan. Ini diperbaiki dalam rilis poin cepat.
(Lihat rilis untuk catatan rilis lengkap)
0.9.0
Fokus pada modernisasi perkakas
Roundhouse telah mengejar ketinggalan untuk melakukan alat-alat. Ketergantungan pada .NET 3.5, rantai build berbasis nant, dll. Kami memulai pekerjaan ini. Itu belum selesai, tetapi dalam perjalanan. Fitur-dari tidak banyak yang perlu dibanggakan, tetapi RH.exe sekarang harus dapat berjalan di Windows Server 2016 di luar kotak, karena tidak lagi tergantung pada .NET 3.5.
(Lihat rilis untuk catatan rilis lengkap)
0.8.8
Mengejar dengan permintaan tarik (lihat rilis untuk catatan rilis)
0.8.7
YA AMPUN!! Ini rilis Roundhouse !!
Sudah lama sekali. Saya tidak ingin terjebak dalam menulis catatan rilis yang sempurna, jadi saya merangkum empat tahun terakhir sejarah komit. Saya berharap bahwa tidak ada orang yang berkontribusi terasa diremehkan oleh kegagalan saya untuk secara khusus mengakui kontribusi Anda. Saya bermaksud melakukan yang lebih baik di masa depan.
Peningkatan
- Tambahkan opsi untuk menjalankan skrip di luar ruang lingkup transaksi
- Menangani string koneksi biru
- Pisahkan file yang benar yang dimulai dengan splitter
- Hormati Bendera Transaksi
- Logging yang lebih baik
- Menambahkan sakelar -WarnandignoreononetimescriptChanges
Perbaikan bug
- Coba lagi ulang kesalahan koneksi SQL
- Tangani Koneksi Postgres dengan benar kesalahan yang dibuang
0.8.6
Peningkatan
- Gunakan git sebagai repositori resmi. (mpareja)
- Tingkatkan Uppercut ke Versi 1.4.2. (FerventCoder)
- Database Restore: Gunakan Nilai Batas Waktu Kembali Khusus. (icetoast - tarik #90)
- Abaikan perubahan format EOL saat mendeteksi perubahan skrip. (Lahma - Tarik #104)
- Sertakan pernyataan cetak SQL di log debug. (FerventCoder - Edisi #68)
- Sertakan pernyataan yang dijalankan dalam log saat kesalahan terjadi. (FerventCoder - Edisi #66)
- Ditambahkan 'RunBeforeUp' kapan saja direktori. (Cdrexle - Tarik #51)
- Dukungan versi penyelesaian dari file teks. (Mpareja - Tarik #50, Tarik #55)
- Tambahkan opsi untuk mematikan skrip menyalin ke direktori 'itemsran'. (Lahma - Tarik #47)
- WarnononetimescriptChange sekarang akan menyebabkan perubahan skrip satu kali untuk dijalankan kembali. (BigGeroise - Tarik #35)
- Tingkatkan Nhibernate ke Versi 3.3.2. (Drusellers)
- Tingkatkan fubucore, htmltags dan structureMap. (Drusellers)
Perbaikan bug
- SQL Batch Parser: Tangani komentar pelatihan, kutipan tunggal. (Mpareja - Tarik #108)
- SQL Batch Parser: Perbaiki hang. (Andersmalmgren - Tarik #100)
- Token Replacer: Cadangan case untuk token yang tidak tertandingi. (Mpareja - Tarik #65)
- Script SQL tidak lagi dipotong menjadi 4000 karakter. (Charoco, FerventCoder - Tarik #61)
- Oracle: Perbaiki penanganan nilai nol. (Rdingwall - Tarik #59, Edisi #58)
- Version File Script: Perbaiki Pengecualian. (Michael Kobaly - Edisi #68 di Google Code)
- Hanya ubah mode pemulihan DB jika disuruh secara eksplisit. (FerventCoder - Masalah #69 di Google Code)
- Memperbaiki sakelar baris perintah debug. (FerventCoder - Edisi #40)
- Pastikan versi 1.2.10 dari log4net digunakan saat menginstal paket nuget. (FerventCoder - Edisi #41)
- Fix: Tingkatkan pencatatan RH Exceptions. (Torkelo - Tarik #60)
Melanggar perubahan
- Roundhouse akan mengubah mode pemulihan DB jika opsi Mode
recoverymode
secara eksplisit diatur ke simple
atau full
. Di masa lalu, Roundhouse akan default untuk full
tetapi hanya akan pernah mengatur mode pemulihan saat membuat/memulihkan database. Jika Anda bergantung pada Roundhouse untuk membuat/memulihkan database untuk Anda dan Anda tidak ingin default server database digunakan, Anda harus menentukan opsi mode pemulihan.
0.8.5
- Fix: KeyNotFoundException di NhibernatesessionFactoryBuilder. Lihat [Edisi 59] (http://code.google.com/p/roundhouse/issues/detail?id=59) untuk detailnya. (R361)
- Dukungan Sqlite! . Lihat Detail #21 (R360)
- Dukungan PostgreSQL! Terima kasih Siimv! Lihat Detail #30 (R359)
- Sakelar Konfigurasi Baru! SearchAllSubDirectoryInsteadoftraverse - Semua subfolder migrasi dilalui secara default dan dijalankan dalam urutan skrip setiap folder. Opsi ini menjalankan semua item di subfolder pada saat yang sama. Terima kasih Siimv! Lihat Detail #31 (R359)
- Perbaiki: Transaksi tidak bekerja dengan pemulihan. Lihat Detail #26 (R357)
- Perbaiki: Memperbaiki bug jahat dengan SQL Server di mana ia mencoba untuk menahan koneksi (mengganggu mode drop/create) dan memberikan kesalahan transportasi. Lihat Detail #12 (R357)
- Resolver Versi Baru! - Versi Nomor Skrip. Lihat Detail #25 (R356)
- Perbaiki: Skrip Buat Kustom harus membagi pernyataan batch. Lihat Detail #22 (R353)
- Folder Migrasi Baru! RunAfterCreateDataBaseFolder - berjalan hanya satu kali dan hanya setelah database dibuat. Ini berfungsi dengan serangkaian jenis basis data terbatas saat ini. Harap uji jika Anda berencana menggunakan. Lihat Detail #20 (R351)
- Hampir semuanya sekarang diinternalisasi. Lihat Detail #8 dan #15 (R350)
- Fix: Tidak dapat menjatuhkan database dengan snapshot. Lihat Detail #13 (R349)
- Buat skrip kustom database dapat menangani jalur file. Lihat Detail #17 (R348)
- Perbaiki: SQL Server 2000 perlu membuat semua tabelnya. Lihat Detail #18 (R346)
- Rakitan RH sekarang ditandatangani. Lihat Detail #14 (R342)
- Perbaiki: Menghapus lokasi log sementara. Lihat Detail #7 (R340)
- Sakelar Konfigurasi Baru! DisabletokenReplacement - Penggantian token harus dapat dikonfigurasi. Lihat Edisi 56 untuk detailnya. (R339)
- Perbaiki: Token Replacer hanya boleh mengganti untuk item yang ditemukannya. Lihat Edisi 56 untuk detailnya. (R339)
- Kemungkinan Breaking Change! Pengkodean file akan selalu mencoba membaca file sebagai UTF-8, tetapi kembali ke ANSI. Anda tidak dapat salah jika Anda mengkode ANSI. Lihat Edisi 39 untuk detailnya. (R337)
- Pemulihan sedikit lebih pintar tentang memindahkan file ke lokasi default ketika seseorang belum ditentukan. Lihat Detail #9 atau Edisi 13 (R336)
- Fix: Jangan jalankan penggantian token pada teks kosong. Lihat Detail #10 (R330)
- Script Kustom juga menjalankan penggantian token (R321)
- Sakelar konfigurasi baru! Dua sakelar baru tersedia - CommandTimeout dan CommandTimeOutAdmin! (R329)
- Perbaiki: Migrasi tidak mencoba mengkonfigurasi LOG4NET sekarang (menyebabkan masalah dengan perpustakaan yang melakukannya) (R326)
- Folder Migrasi Baru! Indeks Folder sekarang tersedia (R327)
- Folder Migrasi Baru! Folder alterDatabase sekarang tersedia. Lihat Detail #6 (R324)
- Fix: Contoh yang disertakan untuk Oracle tidak berfungsi. Lihat [Edisi 55] (http://code.google.com/p/roundhouse/issues/detail?id=55) untuk detailnya. (R322)
- Opsi pemulihan khusus harus menggunakan penggantian token (R321)
- Dukungan mysql! . Terima kasih Diyan. Lihat Detail #3 (R320)
0.8.0.300
- RH sekarang melakukan penggantian token di file SQL menggunakan '{{propertyName}}'. Lihat [edisi 33] (http://code.google.com/p/roundhouse/issues/detail?id=33) untuk detailnya. (R299)
- Selalu jalankan file yang memiliki '.Evertime.' dalam namanya. Lihat [Edisi 51] (http://code.google.com/p/roundhouse/issues/detail?id=51) untuk detailnya. (R299)
- Roundhouse mengirimkan DLL untuk penyematan. Lihat [Edisi 44] (http://code.google.com/p/roundhouse/issues/detail?id=44) untuk detailnya. Ini memiliki antarmuka semi -fluen - lihat (https://gist.github.com/977990) untuk detailnya. (R299)
- Fix: File spesifik lingkungan menjalankan lingkungan lain ketika lingkungan lain adalah bagian dari nama (yaitu Bobtest dijalankan dengan tes). Lihat [Edisi 50] (http://code.google.com/p/roundhouse/issues/detail?id=50) untuk detailnya. (R299)
- Folder yang berjalan setelah folder skrip kapan saja telah ditambahkan. Lihat #1 untuk detailnya. (R297)
- Memperbaiki skrip yang dimodifikasi dua kali berjalan setiap kali bug. Lihat #5 untuk detailnya. (R296)
- Sampel sekarang menjadi proyek di folder rilis. (R287)
- MSBuild tersedia lagi. (R288)
0.7.0.281
- Memperbaiki beberapa masalah dengan menggunakan string koneksi. Anda sekarang harus hanya dapat menyediakan string koneksi dan bukan server/database juga.
0.7.0.276
- Memperbaiki masalah kolasi dengan kolom ID Roundhouse di tabel pelacakannya. Lihat [Edisi 46] (http://code.google.com/p/roundhouse/issues/detail?id=46) untuk detailnya. (R274)
- Restorefrompath dapat mengambil jalur relatif. (R269)
- RH sekarang dapat meningkatkan internal tanpa interaksi pengguna. Lihat [Edisi 40] (http://code.google.com/p/roundhouse/issues/detail?id=40) untuk detailnya. (R268)
- Tugas MSBuild / Nant sudah usang dan tidak lagi terhubung. Harap gunakan konsol dan panggil dari tugas Anda. (R268)
- RH memiliki dukungan yang berbeda dengan pembuatan/pembaruan skema nhibernate (R267 - Branch, R268)
- Fluentnhibernate dan Nhibernate sekarang digunakan untuk internal (R267 - Branch, R268)
- SMO sudah usang dan dihapus (R203 - Cabang, R268)
- Permata dan membangun peningkatan, oh my! (R259)
- SQL2000 hingga 2005 sekarang merupakan transisi yang lancar. (R221)
- Perbaiki: SQL2000 - ScriptSrun sekarang dengan benar merujuk versi untuk kunci asing. (R220)
- Fix: Koneksi harus diinisialisasi sebelum menanyakan database jika mendukung transaksi DDL. (R215)
- Perbaiki: Nama pengguna huruf besar saat berjalan dengan Oracle. (R200)
- RH memiliki dukungan yang berbeda dengan Redgate. Lihat Proyek Sampel untuk detailnya. (R197)
- Fix: Skrips Run Kesalahan Sekarang memperbarui nomor versi dan jalur dengan ketergantungan pada skrip yang dijalankan. Memungkinkan untuk menyelesaikannya selama proses transaksional dan masih menangkap kesalahan. (R196)
- Fix: Capture errortict perubahan ke file DDL/DML (UP) di tabel Run Run Script. (R191)
- Menambahkan string koneksi admin untuk melakukan tugas administratif. (R190)
Catatan rilis sebelumnya
Catatan rilis sebelumnya ada di wiki.
Kredit
Uppercut - Bangunan otomatis (build otomatis dalam 10 menit atau kurang?!) Http://projectuppercut.org