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
endJenis Kolom
Jenis kolom umum dipetakan ke jenis basis data:
stringuntuk teks pendek.textuntuk teks panjang.integer,float,decimaluntuk angka.booleanuntuk nilai true/false.datetime,dateuntuk nilai waktu.
create_table :products do |t|
t.string :title
t.text :description
t.decimal :price
t.boolean :active
t.timestamps
endMenjalankan 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
endMembatalkan 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
endIndeks
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
endMigrasi 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, danadd_indexmembentuk tabel.db:migratemenerapkan perubahan;db:rollbackmembalikkan perubahan.- Gunakan
up/downuntuk perubahan yang tidak dapat dibalik. schema.rbadalah 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.