Lacak perubahan skema basis data Oleh Hernan Reese | Juni 2022

Programming

[ad_1]
Selamat datang Sob di suratpembaca.web.id. Malam ini kita akan membahas tentang Linux yaitu Lacak perubahan skema basis data Oleh Hernan Reese | Juni 2022

.

Mudah-mudahan artikel mengenai Lacak perubahan skema basis data Oleh Hernan Reese | Juni 2022

bisa memberikan faedah bagi Teman-teman semua. Yuk baca postingan ini
sampai tuntas.

Kiat untuk membantu dengan perubahan basis data

Migrasi membantu Anda membangun skema database Anda
Migrasi membantu Anda membangun skema database Anda

Pernahkah Anda bertanya-tanya bagaimana pengembang mengelola perubahan pada database proyek? Apa yang mereka lakukan ketika tabel/kolom/indeks baru ditambahkan, atau ketika tabel, kolom, atau daftar dihapus?

Bagaimana mereka memastikan bahwa setiap orang yang terlibat dalam proyek membuat semua perubahan pada database mereka? Nah, untuk ini, mereka melacak riwayat setiap perubahan yang dilakukan pada skema database.

Transfer SQL dan Perjanjian GIT
Perjanjian migrasi SQL dengan sistem kontrol versi

Ini adalah sesuatu yang tidak saya ketahui sampai saya pertama kali bekerja dengan orang lain dan membaca proyek README dan berkata bahwa saya harus menjalankan “migrasi” untuk memperbarui tata letak basis data saya.

Hal ini membuat saya bertanya pada diri sendiri: Bagaimana mungkin tidak terpikir oleh saya sebelumnya untuk menerima apa yang sudah jelas? Nah, itulah alasan saya tidak pernah mematikan komputer saya atau memformat ulang PC saya, jadi saya harus menginstal ulang seluruh proyek dari awal untuk menyadari bahwa saya tidak memiliki cara untuk memulihkan database saya tanpa cadangan.

Tujuan saya dalam artikel ini adalah untuk menunjukkan kepada Anda bagaimana transfer database ini bekerja sehingga Anda tahu apa yang harus dilakukan ketika perubahan baru dibuat pada database, baik secara individu atau dengan orang lain.

Prosedurnya sederhana, Anda harus melakukan hal yang sama ketika Anda menyimpan riwayat kode proyek. Oleh karena itu, kita akan membutuhkan sistem kontrol versi seperti GIT. Di sana, kami dapat memastikan bahwa setiap orang yang terlibat dalam proyek dapat terus mengikuti perubahan pada database.

Di sini, saya menunjukkan dua cara untuk mengelola migrasi database, tetapi pertama-tama, mari kita lihat kesamaannya:

Anda menulis file yang berisi SQL dalam format bernama seperti: version_description.up/down.ext

Deskripsi dapat berupa deskripsi singkat tentang apa yang dilakukan file migrasi, misalnya:

  1. create_users_table
  2. adds_birthdate_column_to_users_table
  3. drops_country_column_from_users_table

SQL untuk menerapkan perubahan pada tata letak (dikenal sebagai migrasi naik) dan SQL untuk membalikkan perubahan ini (dikenal sebagai migrasi turun)

Inilah sebabnya mengapa pada poin sebelumnya, format nama menunjukkan bahwa migrasi naik atau turun

Catatan: Beberapa perpustakaan mengelola file dan menampilkannya dengan komentar up SQL dan down SQL

Cara untuk menjalankan migrasi secara berurutan

Untuk melakukan ini, kami menggunakan format format nama file, Anda dapat memasukkan nomor urut atau cap saat Anda membuat file, jadi ketika kami menjalankan migrasi, kami menjalankannya dalam urutan menaik. Ini diperlukan karena Anda dapat menambahkan migrasi yang bergantung pada migrasi lain terlebih dahulu.

Pastikan kami tidak menjalankan migrasi dua kali

Perpustakaan dapat membuat tabel untuk melacak migrasi yang dilakukan, sehingga mereka tidak melakukannya dua kali.

Ekstensi file tergantung pada bagaimana Anda memilih untuk mengelola migrasi

Ini bisa berupa file .sql atau ekstensi bahasa pemrograman Anda

Sekarang setelah kita mengetahui kesamaan kita, mari kita lihat masing-masing metode beraksi.

Di sini Anda perlu membuat direktori untuk penyimpanan .sql File yang berisi perubahan yang dibuat pada skema database dan cara untuk membalikkannya. Setelah format yang dijelaskan di bagian sebelumnya, Anda akan memiliki file seperti ini:

Direktori Migrasi SQL
Pohon Direktori Migrasi SQL

Kemudian tulis hanya perubahan yang ingin Anda buat di file migrasi Anda. Misalnya 000001_create_users_table.up.sql Migrasi pada gambar di atas akan terlihat seperti ini:

Dan untuk imigrasi 000001_create_users_table.down.sqlS SQL diperlukan untuk membalikkan perubahan yang dibuat oleh up Berkas migrasi:

DROP TABLE IF EXISTS users;

CatatanBeberapa perpustakaan dapat membaca file SQL dari sumber seperti GitHub, GitLab, AWS s3, dll.

Anda dapat menggunakan perpustakaan berikut untuk metode ini:

  1. https://github.com/golang-migrate/migrate
  2. https://github.com/pressly/goose
  3. https://www.prisma.io/migrate
  4. https://pypi.org/project/yoyo-migrations/
  5. https://github.com/alexyslozada/migrations

Konvensi yang sama yang ada dalam migrasi SQL Murni berlaku di sini, tetapi sebagai gantinya .sql migrasi, Anda akan memiliki migrasi dengan ekstensi bahasa pemrograman Anda, dalam kasus saya, saya akan menggunakan Golang, jadi struktur file sebelumnya yang saya tunjukkan sebelumnya akan seperti ini dengan versi cap waktu alih-alih urutan:

Arahkan ke Direktori Migrasi SQL

Seperti yang Anda lihat, tidak seperti metode sebelumnya, kami hanya memiliki tiga file di sini. Mengapa demikian? Ini karena perpustakaan yang saya gunakan. Kami menunjukkan up Dan down Migrasikan file yang sama di sini untuk konten users Meja:

Di sini Anda memiliki satu up Dan down Berfungsi untuk goose.AddMigration(). Ini jelas bervariasi tergantung pada bahasa pemrograman dan perpustakaan yang Anda gunakan.

Anda dapat menggunakan perpustakaan berikut untuk metode ini:

  1. https://github.com/pressly/goose
  2. https://laravel.com/docs/9.x/migrations
  3. https://pypi.org/project/yoyo-migrations/

Untuk ini, Anda dapat membuat salinan cadangan tata letak database, sehingga Anda dapat menambahkannya sebagai transfer awal, tetapi Anda perlu memastikan bahwa perpustakaan yang Anda gunakan tidak menjalankannya di database lokal Anda ( Karena Anda sudah memilikinya perubahan), jadi Anda harus mencari perpustakaan untuk melihat bagaimana mereka melacak migrasi yang telah dijalankan, item yang saya tahu membuat tabel di database Anda, sehingga Anda bisa Mulai di sana.

Kemudian, Anda dapat mulai melacak perubahan basis data. Jika Anda menginginkan tabel baru, tambahkan migrasi. Jika Anda ingin menjatuhkan kolom? Tambahkan migrasi. Bagaimana jika Anda ingin indeks? Tambahkan migrasi. Ingat, setiap perubahan pada tata letak database Anda harus memiliki migrasi.

Di sini saya memberikan ikhtisar tentang migrasi basis data dengan dua pendekatan umum tentang cara menghadapinya. Secara pribadi, saya suka menggunakan metode pertama karena saya hanya perlu khawatir tentang penulisan SQL dan bukan kode untuk menjalankan migrasi dalam bahasa pemrograman saya. Saya telah menggunakan metode ini selama lebih dari tiga tahun dan saya tidak pernah perlu menggunakan metode kedua.

Saya harap Anda telah mempelajari sesuatu yang baru hari ini dan jika Anda belum melakukannya, Anda sudah mulai menggunakan migrasi ini. Tiga tahun lalu saya tidak tahu cara menggunakannya, tetapi dengan latihan, Anda akan siap untuk menggunakannya atau melatih pengembang lain.

Jika Anda ingin tahu cara membuat dan menjalankan transfer file otomatis, buka perpustakaan yang saya sebutkan. Di sana mereka menjelaskan cara menggunakannya.

Terima kasih telah membaca dan sampai jumpa di artikel selanjutnya.

Itu tadi artikel mengenai Lacak perubahan skema basis data Oleh Hernan Reese | Juni 2022

, terimakasih telah mengunjungi website ini, mudah-mudahan artikelnya ada manfaatnya ya.

[ad_2]

Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.