0Pricing
Ruby Academy · Pelajaran

Migrasi

Kembangkan skema.

Migrasi adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.

Apa Itu Migrasi?

Migrasi adalah berkas Ruby berversi yang menjelaskan perubahan pada skema basis data Anda, seperti membuat tabel atau menambahkan kolom.

  • Migrasi adalah kode, jadi migrasi disimpan dalam pengendalian versi.
  • Semua anggota tim menerapkan perubahan yang sama dalam urutan yang sama.
  • Anda tidak pernah mengubah basis data secara manual.

Membuat Migrasi

Rails membuat berkas migrasi untuk Anda. Misalnya, rails generate migration CreateUsers membuat berkas dengan stempel waktu di db/migrate/. Stempel waktu menentukan urutan migrasi dijalankan.

Membuat Tabel

Migrasi mendefinisikan metode change. create_table membuat tabel; t.timestamps secara otomatis menambahkan created_at dan updated_at.

class CreateUsers < ActiveRecord::Migration[7.1]
  def change
    create_table :users do |t|
      t.string :name
      t.string :email
      t.timestamps
    end
  end
end

Jenis Kolom

Jenis kolom umum dipetakan ke jenis basis data:

  • string untuk teks pendek.
  • text untuk teks panjang.
  • integer, float, decimal untuk angka.
  • boolean untuk nilai true/false.
  • datetime, date untuk nilai waktu.
create_table :products do |t|
  t.string :title
  t.text :description
  t.decimal :price
  t.boolean :active
  t.timestamps
end

Menjalankan Migrasi

rails db:migrate menerapkan semua migrasi yang tertunda dan memperbarui schema.rb. Rails mencatat migrasi mana yang telah dijalankan dalam tabel schema_migrations agar setiap migrasi hanya dijalankan sekali.

Menambahkan Kolom

Untuk memperluas tabel yang sudah ada, buat migrasi dan gunakan add_column. Anda menentukan tabel, nama kolom, jenis, dan opsi.

class AddAgeToUsers < ActiveRecord::Migration[7.1]
  def change
    add_column :users, :age, :integer, default: 0
  end
end

Membatalkan Migrasi

rails db:rollback membatalkan migrasi terakhir. Rails secara otomatis membalikkan metode change jika operasinya dapat dibalik, seperti add_column atau create_table.

Perubahan yang Tidak Dapat Dibalik

Beberapa operasi tidak dapat dibalik secara otomatis, seperti menjalankan SQL mentah atau menghapus kolom yang berisi data. Untuk operasi tersebut, definisikan metode up dan down secara eksplisit agar Rails mengetahui cara membatalkan perubahan.

class ChangeData < ActiveRecord::Migration[7.1]
  def up
    execute "UPDATE users SET active = TRUE"
  end

  def down
    execute "UPDATE users SET active = FALSE"
  end
end

Indeks

Tambahkan indeks untuk mempercepat pencarian pada kolom yang sering Anda kueri, seperti kunci asing atau alamat email yang digunakan untuk masuk. Gunakan unique: true untuk menerapkan keunikan juga pada tingkat basis data.

class AddIndexToUsersEmail < ActiveRecord::Migration[7.1]
  def change
    add_index :users, :email, unique: true
  end
end

Migrasi dan schema.rb

Migrasi adalah riwayat perubahan; schema.rb adalah cuplikan saat ini. Pengembang baru dapat menjalankan rails db:schema:load untuk langsung membangun basis data dari cuplikan tersebut, tanpa menjalankan ulang setiap migrasi.

Praktik Terbaik

Jaga agar migrasi tetap aman:

  • Jangan pernah mengedit migrasi yang sudah dijalankan di lingkungan bersama; tulislah migrasi baru.
  • Fokuskan setiap migrasi pada satu perubahan.
  • Tambahkan batasan tingkat basis data (null: false, indeks) untuk menjaga integritas.

Pemeriksaan Singkat

Uji pemahaman Anda tentang migrasi.

Ringkasan: Migrasi

Anda telah mempelajari cara mengembangkan skema dengan aman:

  • Migrasi adalah perubahan skema berversi yang disimpan dalam pengendalian versi.
  • create_table, add_column, dan add_index membentuk tabel.
  • db:migrate menerapkan perubahan; db:rollback membalikkan perubahan.
  • Gunakan up/down untuk perubahan yang tidak dapat dibalik.
  • schema.rb adalah cuplikan saat ini.

Selanjutnya, kita akan menghubungkan model dengan asosiasi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Migrasi” gratis?

Ya — teks lengkap “Migrasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Migrasi”?

Kembangkan skema. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Ruby Academy?

Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Migrasi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?

Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar Active Record
  2. Migrasi
  3. Asosiasi
  4. Validasi dan Kueri
← Kembali ke Ruby Academy