Ecto Schema & Migration Dasar
Penjelasan
Ecto adalah library database untuk Elixir yang dipakai Phoenix, terdiri dari beberapa bagian: Repo untuk koneksi database, Schema untuk memetakan struct Elixir ke tabel, Changeset untuk validasi, dan Query untuk membaca data. Schema didefinisikan dengan macro schema di dalam modul, mendeskripsikan field apa saja yang dimiliki tabel beserta tipe datanya. Migration adalah file terpisah di priv/repo/migrations yang mendeskripsikan perubahan struktur database secara bertahap dan bisa dijalankan mundur (rollback). Perintah mix ecto.gen.migration nama_migration membuat file kosong, lalu mix ecto.migrate menjalankan semua migration yang belum diterapkan.
Contoh Konsep
# priv/repo/migrations/20260101000000_create_produk.exs
defmodule TokoApp.Repo.Migrations.CreateProduk do
use Ecto.Migration
def change do
create table(:produk) do
add :nama, :string
add :harga, :integer
timestamps()
end
end
end
# lib/toko_app/catalog/produk.ex
defmodule TokoApp.Catalog.Produk do
use Ecto.Schema
schema "produk" do
field :nama, :string
field :harga, :integer
timestamps()
end
end
Praktikum
Buat migration dan schema untuk tabel artikel dengan field judul (string) dan isi (text).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Selalu jalankan mix ecto.migrate setelah membuat migration baru, dan gunakan mix ecto.rollback jika perlu membatalkan migration terakhir saat masih development.