Tetapi seperti fail sumber dalam projek kami, pangkalan data sentiasa berubah juga. Itulah sebabnya kami juga memerlukan cara untuk mengesan perubahan yang telah kami buat dan mudah berkongsi dengan ahli -ahli lain pasukan kami.
Dalam artikel ini kita akan melihat DBV, sistem kawalan versi pangkalan data yang ditulis dalam PHP untuk pangkalan data MySQL supaya anda perlu memasang PHP dan MySQL sebelum anda boleh menggunakannya, bersama dengan pelayan web seperti Apache atau Nginx.
Nota penting mengenai perisian ini adalah bahawa ia bukan sistem kawalan versi pangkalan data yang berdiri sendiri, kerana ia memerlukan sistem kawalan versi seperti Git, Mercurial atau SVN untuk menyegerakkan perubahan dengan pasukan anda.
Memasang DBV
3 Ini akan memberi anda jalan berikut:Pendekatan alternatif hanya kloning dari GitHub.
<span>my_project/dbv</span>
anda boleh mula mengkonfigurasi pilihan untuk DBV dengan membuat salinan fail config.php.sample dan menamakannya ke config.php.
Bahagian pertama dalam fail konfigurasi di atas adalah mengenai butiran pangkalan data MySQL dalam mesin anda.
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Your database authentication information goes here </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/ </span></span></span><span><span> */ </span></span><span><span>define('DB_HOST', 'localhost'); </span></span><span><span>define('DB_PORT', 3306); </span></span><span><span>define('DB_USERNAME', 'my_username'); </span></span><span><span>define('DB_PASSWORD', 'my_password'); </span></span><span><span>define('DB_NAME', 'my_database'); </span></span><span> </span><span><span>/** </span></span><span><span> * Authentication data for access to DBV itself </span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings </span></span></span><span><span> */ </span></span><span><span>define('DBV_USERNAME', 'my_username'); </span></span><span><span>define('DBV_PASSWORD', 'my_password'); </span></span><span><span>?></span></span>
seterusnya membuka fail .gitignore. Secara lalai ia mengandungi perkara berikut:
<span>my_project/dbv</span>
Ini adalah fail yang akan diabaikan oleh Git. Tetapi jika anda tahu bahawa anda mempunyai maklumat pangkalan data yang sama (pengguna, kata laluan, nama pangkalan data) sebagai rakan pasukan anda maka anda boleh mengeluarkan config.php dari fail .gitignore. Jika tidak maka mereka perlu membuat fail konfigurasi mereka sendiri dan tidak termasuk dari kawalan sumber.
Seterusnya anda juga perlu menambah fail data/meta/semakan ke .gitignore seperti di mana DBV meletakkan maklumat mengenai salinan pangkalan data tempatan anda. Ia mungkin berbeza untuk rakan sepasukan anda sehingga perlu dikecualikan daripada kawalan sumber.
Sebaik sahaja anda selesai dengan konfigurasi, anda kini boleh menambah DBV ke dalam kawalan versi:
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Your database authentication information goes here </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/ </span></span></span><span><span> */ </span></span><span><span>define('DB_HOST', 'localhost'); </span></span><span><span>define('DB_PORT', 3306); </span></span><span><span>define('DB_USERNAME', 'my_username'); </span></span><span><span>define('DB_PASSWORD', 'my_password'); </span></span><span><span>define('DB_NAME', 'my_database'); </span></span><span> </span><span><span>/** </span></span><span><span> * Authentication data for access to DBV itself </span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings </span></span></span><span><span> */ </span></span><span><span>define('DBV_USERNAME', 'my_username'); </span></span><span><span>define('DBV_PASSWORD', 'my_password'); </span></span><span><span>?></span></span>
dan kemudian menolaknya ke repositori pusat anda untuk ahli -ahli pasukan anda yang lain untuk menarik:
<span>config.php </span><span>.buildpath </span><span>.project </span><span>.settings</span>
sebelum kita bergerak ke dalam sebenarnya menggunakan DBV. Saya ingin menyentuh sedikit di mana perubahan untuk dijejaki. Di dunia pangkalan data cukup banyak perubahan boleh dimasukkan ke dalam kawalan sumber. Ini termasuk yang berikut:
<span>git add dbv </span><span>git commit -m "add dbv into project"</span>
ini akan memberi anda antara muka yang serupa dengan yang berikut:
Dari tangkapan skrin di atas, anda akan melihat jadual yang sedang dalam pangkalan data yang anda dibekalkan dalam config.php sebelumnya. Terdapat juga medan DB yang memaparkan sama ada jadual tertentu sedang dalam pangkalan data dan cakera ON yang memaparkan sama ada jadual semasa disimpan dalam sistem fail anda. Dengan maklumat ini, anda cukup sedar sama ada anda mempunyai salinan terkini pangkalan data.
Perkara penting yang perlu diingat ketika bekerja dengan DBV adalah bahawa apa -apa perubahan yang anda buat untuk salinan pangkalan data anda harus mempunyai salinan setempat yang boleh anda lakukan ke dalam kawalan sumber anda.
Ini bermakna jika anda membuat jadual baru dalam pangkalan data, anda perlu mengeksportnya ke cakera. Semua jadual yang dieksport ke cakera disimpan dalam direktori data/skema pemasangan DBV anda. Anda dapat melihat dari tangkapan skrin di bawah bahawa kami tidak mempunyai jadual TBL_LEADINFO dalam sistem fail kami:
<span>my_project/dbv</span>
maka anda hanya boleh menolaknya ke repositori pusat anda:
<span><span><?php </span></span><span><span>/** </span></span><span><span> * Your database authentication information goes here </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/ </span></span></span><span><span> */ </span></span><span><span>define('DB_HOST', 'localhost'); </span></span><span><span>define('DB_PORT', 3306); </span></span><span><span>define('DB_USERNAME', 'my_username'); </span></span><span><span>define('DB_PASSWORD', 'my_password'); </span></span><span><span>define('DB_NAME', 'my_database'); </span></span><span> </span><span><span>/** </span></span><span><span> * Authentication data for access to DBV itself </span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings </span></span></span><span><span> */ </span></span><span><span>define('DBV_USERNAME', 'my_username'); </span></span><span><span>define('DBV_PASSWORD', 'my_password'); </span></span><span><span>?></span></span>
Pada ketika ini, anda hanya boleh memberitahu rakan sepasukan anda bahawa anda telah membuat jadual baru dalam pangkalan data dan anda telah menolaknya ke repo pusat. Sekarang mereka hanya boleh menariknya ke salinan tempatan mereka.
<span>config.php </span><span>.buildpath </span><span>.project </span><span>.settings</span>
seterusnya beritahu pasangan pasukan anda untuk melawat halaman DBV (http: // localhost/your_project/dbv).
Pasangan pasukan anda mungkin akan mempunyai skrin yang serupa dengan yang berikut:
Dan itulah alur kerja untuk bekerja dengan DBV. Cukup mudah, bukan? Tetapi bagaimana jika anda perlu membuat perubahan pada skema pangkalan data semasa? Mungkin anda terlepas bidang atau terlupa untuk menambahkannya pada jadual tertentu sebelum anda mengedarkannya kepada pasukan anda. Di sinilah semakan masuk.
Semakan
Mari cuba buat medan baru di dalam jadual TBL_USERS dan namakan e -melnya:
<span>git add dbv </span><span>git commit -m "add dbv into project"</span>
Jika anda membuat pengubahsuaian kepada lebih daripada satu jadual maka buat fail berasingan untuk setiap jadual.
<span>git push</span>
<span>http://localhost/your_project/dbv</span>
Sekarang jika mereka mengakses DBV dari penyemak imbas mereka kini dapat melihat semakan itu. Apa yang perlu mereka lakukan sekarang ialah menandakan kotak semak di samping semakan dan kemudian klik pada butang 'Run Revisions'. Ini akan melakukan perubahan anda kepada salinan pangkalan data tempatan mereka:
Dalam artikel ini, kami telah melihat menggunakan DBV dengan Git tetapi anda boleh menggunakan sistem kawalan versi pilihan anda dengan cukup banyak. Maklum balas? Sila tinggalkannya dalam komen di bawah!
soalan yang sering ditanya mengenai versi pangkalan data
Apakah cabaran dalam melaksanakan versi pangkalan data? Pertama, ia memerlukan perubahan dalam proses pembangunan, yang sukar untuk dikendalikan. Kedua, ia memerlukan pengendalian migrasi pangkalan data yang teliti untuk mengelakkan kehilangan data atau rasuah. Akhir sekali, ia memerlukan pemahaman yang baik mengenai skema pangkalan data dan perubahan yang dibuat kepadanya.
Dalam perkembangan tangkas, perubahan dibuat dengan kerap dan cepat. Versi pangkalan data boleh membantu menguruskan perubahan ini dengan berkesan dengan menyediakan rekod sejarah semua perubahan, memudahkan penggantian mudah perubahan, dan memastikan konsistensi di seluruh persekitaran yang berbeza. Ini dapat meningkatkan ketangkasan dan kecekapan proses pembangunan. (CI/CD) perubahan pangkalan data. Dengan mengekalkan sejarah versi skema pangkalan data, ia membolehkan penggunaan perubahan automatik di seluruh persekitaran yang berbeza, dengan itu meningkatkan kelajuan dan kecekapan proses DevOps.
Ya, versi pangkalan data boleh digunakan dengan pangkalan data awan. Kebanyakan alat versi pangkalan data menyokong pelbagai jenis pangkalan data, termasuk pangkalan data awan. Walau bagaimanapun, ciri dan keupayaan tertentu mungkin berbeza -beza bergantung kepada alat dan jenis pangkalan data awan.Apakah amalan terbaik untuk versi pangkalan data? Termasuk: menggunakan sistem kawalan versi untuk mengekalkan sejarah versi skema pangkalan data; melakukan setiap perubahan sebagai versi baru; menguji setiap versi dengan teliti sebelum penggunaan; menggunakan alat automatik untuk kemas kini skema dan rollbacks; dan mengekalkan komunikasi dan kerjasama yang baik di kalangan ahli pasukan.
Atas ialah kandungan terperinci Versi pangkalan data dengan DBV. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!