Study
Phoenix

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).

Editor Latihan

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.