Migrasi Skema — SQL

Migrasi adalah cara mengelola perubahan skema database secara terstruktur — seperti version control untuk database. ALTER TABLE — mengubah tabel yang sudah ada:

Migrasi adalah cara mengelola perubahan skema database secara terstruktur — seperti version control untuk database.

ALTER TABLE — mengubah tabel yang sudah ada:

-- Tambah kolom baru
ALTER TABLE users ADD COLUMN phone TEXT;

-- Rename kolom (SQLite 3.25+)
ALTER TABLE users RENAME COLUMN phone TO phone_number;

-- Rename tabel
ALTER TABLE users RENAME TO members;

Catatan SQLite: SQLite tidak mendukung DROP COLUMN dan beberapa ALTER lainnya. Untuk perubahan besar, buat tabel baru, copy data, lalu hapus tabel lama.

Pola migrasi aman:

-- 1. Buat tabel baru dengan skema yang diinginkan
CREATE TABLE users_new (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT UNIQUE,
    phone TEXT,  -- kolom baru
    created_at TEXT DEFAULT (datetime('now'))
);

-- 2. Copy data dari tabel lama
INSERT INTO users_new (id, name, email)
SELECT id, name, email FROM users;

-- 3. Hapus tabel lama
DROP TABLE users;

-- 4. Rename tabel baru
ALTER TABLE users_new RENAME TO users;

-- 5. Buat ulang index
CREATE INDEX idx_users_email ON users(email);

Tips migrasi:

Yang akan kamu pelajari