Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM · Pelajaran

Migrasi Pangkalan Data dan Pengurusan Skema

Fahami alat dan strategi untuk mengurus perubahan skema pangkalan data serta migrasi dalam projek Clojure

Pelajaran 3 daripada 412 langkah

Migrasi Pangkalan Data dan Pengurusan Skema ialah pelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM merangkumi sejumlah 4 pelajaran.

Mengapa Mengurus Skema Pangkalan Data?

Apakah yang berlaku apabila aplikasi anda berubah? Ciri baharu selalunya memerlukan tempat baharu untuk menyimpan data atau perubahan pada struktur data sedia ada. Di sinilah pengurusan skema pangkalan data diperlukan.

Skema pangkalan data adalah seperti pelan tindakan bagi pangkalan data anda. Skema mentakrifkan jadual, lajur, hubungan dan kekangan yang menstrukturkan data anda.

Apabila aplikasi anda berkembang, skemanya juga perlu berkembang. Perubahan manual boleh berisiko dan tidak konsisten merentas persekitaran.

Penjelasan Migrasi Pangkalan Data

Migrasi pangkalan data ialah kawalan versi untuk skema pangkalan data anda. Anggaplah ia seperti komit kod, tetapi untuk struktur pangkalan data.

Setiap migrasi ialah sekumpulan arahan (biasanya SQL) yang menerangkan cara mengubah pangkalan data daripada satu versi kepada versi seterusnya. Migrasi biasanya mempunyai cap masa dan digunakan mengikut turutan.

  • `up` script: Menggunakan perubahan (contohnya, menambah jadual).
  • `down` script: Membuat asal perubahan (contohnya, menggugurkan jadual).

Mengapa Menggunakan Migrasi?

Penggunaan migrasi pangkalan data menawarkan beberapa kelebihan utama untuk pasukan pembangunan:

  • Konsistensi: Memastikan semua pembangun dan persekitaran penggunaan mempunyai skema pangkalan data yang sama.
  • Kerjasama: Memudahkan beberapa pembangun menyumbang perubahan skema tanpa konflik.
  • Keupayaan Membuat Asal: Membolehkan anda kembali dengan mudah kepada keadaan skema sebelumnya jika berlaku masalah.
  • Automasi: Berintegrasi dengan lancar ke dalam saluran paip CI/CD anda untuk penggunaan automatik.

Pustaka Migratus Clojure

Dalam ekosistem Clojure, pustaka yang popular dan kukuh untuk mengurus migrasi pangkalan data ialah Migratus.

Migratus bersifat fleksibel, menyokong migrasi SQL dan juga migrasi berasaskan Clojure. Pustaka ini menjejaki migrasi yang telah digunakan dalam pangkalan data anda, bagi memastikan migrasi hanya dijalankan sekali dan mengikut turutan yang betul.

Pustaka ini direka bentuk supaya mudah dikonfigurasi dan digunakan, serta sesuai dengan pendekatan berfungsi Clojure.

Menyediakan Migratus

Untuk menggunakan Migratus, anda perlu menambahkannya sebagai kebergantungan dan mengkonfigurasikannya terlebih dahulu. Berikut ialah persediaan biasa menggunakan deps.edn dan peta konfigurasi:

Mula-mula, tambahkan kebergantungan tersebut pada deps.edn anda:

{:deps {org.clojure/clojure {:mvn/version "1.11.1"}
        migratus/migratus {:mvn/version "1.0.10"}
        org.postgresql/postgresql {:mvn/version "42.6.0"}}}

Kemudian, cipta fail migratus-config.edn (atau fail yang serupa) untuk mentakrifkan sambungan pangkalan data anda:

{:store :database
 :migration-dir "resources/migrations"
 :db {:classname   "org.postgresql.Driver"
      :subprotocol "postgresql"
      :subname     "//localhost:5432/myapp_db"
      :user        "dbuser"
      :password    "dbpass"}}

Struktur Migrasi

Migrasi biasanya ialah fail SQL yang diletakkan dalam direktori yang ditetapkan (contohnya, resources/migrations seperti yang dikonfigurasikan sebelum ini). Setiap migrasi terdiri daripada skrip "up" dan "down".

Migratus menjangkakan fail yang dinamakan seperti YYYYMMDDHHMMSS-migration-name.up.sql dan YYYYMMDDHHMMSS-migration-name.down.sql.

Cap masa tersebut memastikan susunan yang unik. Anda boleh menjana nama ini menggunakan alat baris perintah, biasanya migratus create <name>.

Contoh `up.sql`

Fail .up.sql mengandungi perintah SQL untuk menggunakan perubahan skema. Contoh ini mencipta jadual users baharu.

-- resources/migrations/20231027100000-create-users-table.up.sql

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  username VARCHAR(255) NOT NULL UNIQUE,
  email VARCHAR(255) NOT NULL,
  created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

Skrip ini mentakrifkan struktur awal untuk pengguna kita.

Contoh `down.sql`

Fail .down.sql mengandungi perintah SQL untuk mengembalikan perubahan skema yang dibuat oleh .up.sql yang sepadan dengannya. Contoh ini membuang jadual users.

-- resources/migrations/20231027100000-create-users-table.down.sql

DROP TABLE IF EXISTS users;

Amat penting untuk memastikan skrip `down` membatalkan skrip `up` dengan tepat, supaya pengembalian dapat dilakukan dengan selamat.

Menggunakan Migrasi

Setelah fail migrasi anda siap dan `migratus` dikonfigurasikan, anda boleh menggunakan migrasi tersebut.

Biasanya, anda akan menggunakan alat baris perintah seperti Leiningen atau clj dengan alias yang dikonfigurasikan untuk `migratus`.

Untuk menggunakan semua migrasi yang belum selesai:

lein migratus migrate

atau jika menggunakan clj dengan alias migratus:

clj -M:migratus migrate

Migratus akan menjalankan semua skrip `up` yang belum digunakan, mengikut susunan.

Membatalkan Perubahan

Adakalanya anda perlu membatalkan migrasi, mungkin disebabkan oleh ralat atau perubahan dalam keperluan. Migratus memudahkan proses ini.

Untuk mengembalikan migrasi terakhir yang digunakan:

lein migratus rollback

Perintah ini akan melaksanakan skrip `down` bagi migrasi yang paling baru digunakan. Anda boleh memanggilnya beberapa kali untuk mengembalikan migrasi yang lebih lama.

Pastikan skrip `down` anda sentiasa selamat dan idempoten!

Konsep Migrasi

Memahami tujuan skrip up dan down ialah kunci kepada pengurusan skema yang berkesan.

Imbas Kembali: Pengurusan Skema

Kita telah meneroka peranan penting migrasi pangkalan data dalam mengurus perubahan skema dalam projek Clojure. Anda telah mempelajari:

  • Apakah skema dan migrasi pangkalan data.
  • Manfaat perubahan skema yang dikawal versinya.
  • Cara menggunakan `Migratus` untuk mentakrifkan dan menggunakan migrasi melalui skrip SQL `up` dan `down`.
  • Perintah untuk menggunakan dan mengembalikan migrasi.

Dengan migrasi, skema pangkalan data anda boleh berkembang seiring dengan kod aplikasi secara terkawal dan boleh dipercayai!

Percuma untuk bermula

Pelajari Clojure dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Migrasi Pangkalan Data dan Pengurusan Skema” percuma?

Ya — teks penuh “Migrasi Pangkalan Data dan Pengurusan Skema” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM, tingkat taraf kepada CoddyKit PRO. Kursus Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Migrasi Pangkalan Data dan Pengurusan Skema”?

Fahami alat dan strategi untuk mengurus perubahan skema pangkalan data serta migrasi dalam projek Clojure Anda berlatih Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Migrasi Pangkalan Data dan Pengurusan Skema” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM ini?

Ya. Setiap pelajaran Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Menyambung ke Pangkalan Data dengan next.jdbc
  2. Melaksanakan Operasi CRUD
  3. Migrasi Pangkalan Data dan Pengurusan Skema
  4. Pengumpulan Sambungan dan Transaksi
← Kembali ke Pengaturcaraan Fungsian Clojure dan Pembangunan Bahagian Belakang JVM