Saya versi mengontrol sebagian besar pekerjaan saya dengan Git : kode, dokumentasi, konfigurasi sistem. Saya dapat melakukan itu karena semua pekerjaan berharga saya disimpan sebagai file teks.
Saya juga telah menulis dan berurusan dengan banyak skema SQL untuk database Postgres kami. Skema ini mencakup pandangan, fungsi SQL, dan kami akan menulis fungsi Postgres dalam bahasa pemrograman R (via PL / R ).
Saya mencoba menyalin dan melewati skema potongan yang saya dan kolaborator saya tulis tetapi saya lupa melakukannya. Salinan dan tindakan sebelumnya adalah berulang dan rentan kesalahan.
Metode pg_dump / pg_restore tidak akan berfungsi karena kehilangan komentar.
Idealnya saya ingin memiliki beberapa cara untuk mengekstrak skema saya saat ini menjadi file atau file dan menjaga komentar sehingga saya dapat melakukan kontrol versi.
Apa praktik terbaik untuk skema kontrol versi dengan komentar?
sumber
COMMENT ON
tersedia di lingkungan non postgres? Saya tidak berpikir itu SQL standar. yang berarti ini bisa spesifik postgres.Jawaban:
Mengapa tidak Anda
COMMENT ON
berbagaiSCHEMA
komponen, sehingga komentar Anda dalam skema, dan akan dibuang.sumber
Skema pengontrol versi selalu bermasalah bagi saya. Saya biasanya mengontrol versi skema yang dihasilkan oleh alat pemodelan data yang saya gunakan. Model ini juga dikendalikan oleh versi. Saya menggunakan perbedaan antara skema saat ini dan sebelumnya untuk membangun tambalan yang diperlukan untuk memperbarui skema. Beberapa alat pemodelan membuat skrip pembaruan skema yang dapat digunakan. Skrip pembaruan juga dikendalikan oleh versi.
Saya kadang-kadang melihat skrip yang dimaksudkan untuk membuang skema dalam format yang sesuai untuk membuat ulang skema. Salah satunya mungkin apa yang Anda cari. Beberapa alat pemodelan dan kueri mampu membuat skrip regenerasi skrip dari skema yang ada. Jika Anda bisa skrip ini mungkin memberi Anda file yang cocok untuk kontrol versi.
sumber
Alternatif (atau Anda dapat menggabungkannya) dengan proposal saya sebelumnya adalah menulis kode SQL Anda di editor (IDE) dan menyimpan file, dan mengkomitnya ke VCS Anda, setelah itu jalankan kode pada database menggunakan
psql -1f
. Dengan cara ini, kode dikendalikan oleh versi sebelum dieksekusi.sumber
Saya bekerja di proyek serupa. Ini proposal desain saya:
Jika tidak menggunakan repo maka buat tabel sederhana dalam teks .CSV format seperti tabel di bawah ini:
version | file name | date | description | 1.0 | yyyymmdd-v10.dump | yyyymmdd | new version of user table | 1.1 | backupDB-v11.dump | yyyymmdd | normalized reports tables |
dengan menjaga hubungan dalam file CSV dari dump yang dihasilkan dengan nama file Anda dapat melacaknya dengan mudah dan Anda memastikan pengembalian akan bekerja karena Anda benar-benar membuang semuanya.
Saat ini penyimpanan awan atau penyimpanan situs tidak boleh semahal itu jika berbicara tentang TB data. ada beberapa mengamuk dari 700 hingga 1000 USD dengan hingga 16 TB .
Anda bahkan dapat menghemat lebih banyak $$$ jika Anda pindah ke cloud penyimpanan seperti jenis AWS S3 yang paling populer
Jika desain dan standar organisasi yang baik didefinisikan untuk melacak semua infrastruktur dan aset TI yang seharusnya tidak menyakitkan setelah diimplementasikan, itu bisa relatif sederhana dan akan menghemat rasa sakit konfigurasi Anda dan yang paling penting waktu ...
sumber