Rumah > pembangunan bahagian belakang > tutorial php > Versi pangkalan data dengan DBV

Versi pangkalan data dengan DBV

Christopher Nolan
Lepaskan: 2025-02-21 12:09:10
asal
911 orang telah melayarinya

Versi pangkalan data dengan DBV

Takeaways Key

    DBV adalah sistem kawalan versi pangkalan data berasaskan PHP untuk pangkalan data MySQL. Ia tidak mandiri dan memerlukan sistem kawalan versi seperti Git, Mercurial, atau SVN untuk menyegerakkan perubahan dengan pasukan anda.
  • DBV membolehkan pemaju untuk mengesan perubahan yang dibuat ke pangkalan data, berkongsi perubahan ini dengan ahli pasukan, dan memastikan semua orang bekerja dengan salinan pangkalan data terkini. Ia boleh menjejaki perubahan seperti jadual baru, dinamakan semula atau dijatuhkan jadual, medan baru atau dikemas kini, baris jadual baru atau dikemas kini, dan banyak lagi.
  • aliran kerja DBV melibatkan membuat salinan tempatan pangkalan data, membuat perubahan, mengeksport perubahan ini kepada cakera, melakukan mereka ke dalam kawalan sumber, dan menolaknya ke repositori pusat. Ahli pasukan kemudian boleh menarik perubahan ini ke salinan tempatan mereka.
  • DBV juga menyokong semakan, yang membolehkan pemaju mengubah suai struktur lebih daripada satu jadual. Walau bagaimanapun, adalah amalan yang baik untuk membuat perubahan pada satu jadual dan membuat semakan untuknya, melainkan jika perubahan itu berkaitan dengan satu sama lain.
Amalan yang baik untuk sentiasa menggunakan sistem kawalan versi dalam mana -mana projek anda. Sama ada projek sampingan di mana anda adalah satu-satunya pemaju, atau projek pasukan di mana lima atau lebih orang bekerja bersama-sama. Tetapi idea meletakkan pangkalan data anda ke dalam kawalan versi tidak benar -benar meluas. Sering kali kita mengambil pangkalan data untuk diberikan.

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>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Konfigurasi DBV

anda boleh mula mengkonfigurasi pilihan untuk DBV dengan membuat salinan fail config.php.sample dan menamakannya ke config.php.

Perkara yang paling penting untuk dikemas kini di sini adalah dua bahagian pertama. Gantikan nilai untuk my_username, my_password, my_database untuk nilai -nilai dalam konfigurasi pangkalan data semasa anda:

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>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Bahagian kedua adalah butiran log masuk untuk DBV sendiri.

seterusnya membuka fail .gitignore. Secara lalai ia mengandungi perkara berikut:

<span>my_project/dbv</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

Apakah perubahan yang dapat dijejaki?

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:

  • Jadual Baru
  • Dinamakan semula Jadual
  • Jadual yang dijatuhkan
  • Bidang baru
  • medan terkini
  • medan yang dipadam
  • baris jadual baru (data jadual lalai)
  • baris jadual yang dikemas kini Baris meja yang dipadam
  • paparan
  • Prosedur yang disimpan
  • Pencetus
  • Fungsi (fungsi yang ditentukan pengguna)
aliran kerja DBV

anda boleh membakar DBV dari penyemak imbas anda dengan mengakses URL berikut:

<span>git add dbv
</span><span>git commit -m "add dbv into project"</span>
Salin selepas log masuk
Salin selepas log masuk
atau jika anda menentukan tuan rumah maya, dengan mengakses urlnya

ini akan memberi anda antara muka yang serupa dengan yang berikut:

Versi pangkalan data dengan DBV 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:

Setelah mengeksport jadual yang baru dibuat ke cakera, anda harus melakukannya ke dalam kawalan versi:

<span>my_project/dbv</span>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

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:

Versi pangkalan data dengan DBV

Pada ketika ini dia hanya boleh menandakan kotak semak di sebelah meja TBL_TASKS dan klik pada butang 'Tolak ke Pangkalan Data'. Ini akan mewujudkan jadual TBL_TASKS dalam pangkalan data.

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

Jika anda seperti saya dan anda cuba mengemas kini skema (menambah medan baru, keluarkan medan, mengemas kini jenis data, dan lain -lain) untuk jadual tertentu yang mungkin anda perhatikan bahawa DBV tidak menyedarinya dengan lalai. Bagi perubahan tersebut, anda perlu membuat fail semakan. Anda boleh melakukannya dengan membuat folder baru dalam direktori Data/Semakan dalam pemasangan DBV anda. Konvensyen untuk menamakan folder menggunakan nombor. Jadi kali pertama anda membuat semakan nama folder akan menjadi 1 dan kemudian pada masa akan datang ia akan menjadi 2 dan sebagainya. Perhatikan bahawa semakan adalah perubahan yang boleh digunakan untuk keseluruhan pangkalan data. Ini bermakna anda mempunyai kebebasan untuk mengubah suai struktur lebih daripada satu jadual, tetapi amalan yang baik untuk hanya membuat perubahan pada satu jadual dan membuat semakan untuknya. Ini adalah untuk anda dan pasukan anda untuk menguruskan perubahan dengan mudah dan memahaminya kemudian. Satu -satunya pengecualian untuk amalan ini adalah apabila perubahan berkaitan dengan satu sama lain. Dalam hal ini, masuk akal untuk meletakkan perubahan tersebut bersama -sama dalam satu 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>
Salin selepas log masuk
Salin selepas log masuk
Seterusnya buat fail baru dalam direktori Data/Semakan/1 dalam pemasangan DBV anda dan letakkan pertanyaan yang baru saja anda lakukan sebagai kandungannya. Namakan fail tbl_users.sql. Konvensyen di sini menggunakan nama jadual yang diubahsuai sebagai nama untuk fail semakan.

Jika anda membuat pengubahsuaian kepada lebih daripada satu jadual maka buat fail berasingan untuk setiap jadual.

selepas itu anda boleh melakukan fail baru ke dalam kawalan sumber anda:

<span>git push</span>
Salin selepas log masuk
dan kemudian menolaknya ke repositori pusat anda:

<span>http://localhost/your_project/dbv</span>
Salin selepas log masuk
Sekali lagi anda boleh memaklumkan rakan sepasukan anda mengenai perubahan tertentu. Komunikasi adalah kunci apabila membuat perubahan pada pangkalan data. Anda ingin memastikan bahawa semua orang dalam pasukan anda berada di halaman yang sama seperti anda.

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:

Versi pangkalan data dengan DBV

Kesimpulan

DBV adalah cara yang baik untuk menguruskan keperluan kawalan versi pangkalan data anda dengan mudah. Ia membolehkan anda dan pasukan anda dengan mudah menjejaki perubahan yang dibuat dalam pangkalan data anda. Ia juga membolehkan perkongsian mudah perubahan anda dengan seluruh pasukan anda melalui penggunaan Git. Ini memastikan bahawa semua orang sentiasa mempunyai salinan terkini pangkalan data.

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 faedah utama versi pangkalan data?

Versi pangkalan data menawarkan beberapa manfaat. Pertama, ia menyediakan rekod sejarah semua perubahan yang dibuat kepada skema pangkalan data, yang boleh berguna untuk tujuan debug dan pengauditan. Kedua, ia membolehkan penggantian mudah perubahan dalam kes kesilapan atau isu. Ketiga, ia memudahkan kerjasama di kalangan ahli pasukan dengan memastikan semua orang bekerja dengan versi pangkalan data yang sama. Akhir sekali, ia membantu dalam mengekalkan konsistensi dan integriti pangkalan data, terutamanya dalam persekitaran pembangunan yang diedarkan. skema pangkalan data. Ini biasanya dilakukan menggunakan sistem kawalan versi seperti Git. Setiap perubahan kepada skema pangkalan data dilakukan sebagai versi baru dalam sistem kawalan versi. Versi ini kemudiannya digunakan untuk mengemas kini skema pangkalan data dalam persekitaran yang berbeza (pembangunan, ujian, pengeluaran, dan lain -lain) seperti yang diperlukan. Alat yang tersedia untuk versi pangkalan data. Beberapa yang popular termasuk Liquibase, Flyway, dan DBMAestro. Alat ini menyediakan ciri -ciri seperti kemas kini skema automatik, keupayaan rollback, dan sokongan untuk pelbagai jenis pangkalan data. Pilihan alat bergantung kepada keperluan khusus dan keutamaan pasukan pembangunan.

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.

Bagaimanakah versi pangkalan data boleh membantu dalam pembangunan tangkas?

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 peranan versi pangkalan data dalam tadbir urus data? tadbir urus data dengan memastikan integriti dan konsistensi skema pangkalan data. Ia menyediakan rekod sejarah semua perubahan, yang boleh berguna untuk tujuan pengauditan dan pematuhan. Ia juga memudahkan kerjasama dan komunikasi di kalangan ahli pasukan, yang penting untuk tadbir urus data yang berkesan. Boleh membantu mengenal pasti isu -isu prestasi dengan menyediakan rekod sejarah perubahan skema. Ini berguna untuk debugging dan penalaan prestasi. Selain itu, dengan memastikan konsistensi dan integriti skema pangkalan data, ia secara tidak langsung boleh menyumbang kepada prestasi pangkalan data yang lebih baik.

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan