Migration'lar

Uygulamanızda veritabanı migration'larını nasıl oluşturacağınızı ve yöneteceğinizi öğrenin.

Not: Bu içerik, tanıtım amacıyla hazırlanmış örnek/yer tutucu bir içeriktir.

Veritabanı migration'ları, veritabanı şeması değişikliklerinizi sürüm kontrolü altında tutmanıza ve bunları tüm ortamlarda tutarlı şekilde uygulamanıza olanak tanır.

Migration Oluşturma

Yeni bir migration oluşturmak için aşağıdaki komutu kullanın:

pnpm --filter web supabase:db:diff

Bu komut, yerel veritabanınız ile şema dosyaları arasındaki farklara dayanarak apps/web/supabase/migrations dizininde yeni bir migration dosyası oluşturur.

Migration'ları Uygulama

Migration'ları yerel veritabanınıza uygulamak için:

pnpm --filter web supabase migrations up

Migration İçin En İyi Uygulamalar

  1. Üretime uygulamadan önce migration'ları her zaman önce yerel ortamda test edin
  2. Mümkün olduğunda DOWN ifadeleri ekleyerek migration'ları geri alınabilir yapın
  3. İşlemlerin atomik olmasını sağlamak için transaction kullanın
  4. Yabancı anahtarlar ve sık sorgulanan sütunlar için indeks ekleyin
  5. RLS politikalarını tablo oluşturmayla aynı migration'a dahil edin

Örnek Migration

-- Yeni bir tablo oluştur
CREATE TABLE tasks (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  account_id UUID NOT NULL REFERENCES accounts(id) ON DELETE CASCADE,
  title TEXT NOT NULL,
  completed BOOLEAN DEFAULT false,
  created_at TIMESTAMPTZ DEFAULT now()
);

-- RLS ekle
ALTER TABLE tasks ENABLE ROW LEVEL SECURITY;

-- Politikaları oluştur
CREATE POLICY "Users can view their account tasks"
  ON tasks FOR SELECT
  USING (account_id IN (SELECT get_user_accounts(auth.uid())));

Veritabanını Sıfırlama

Yerel veritabanınızı en güncel şemayla tamamen sıfırlamak için:

pnpm supabase:web:reset

Bu komut tüm tabloları siler ve tüm migration'ları baştan yeniden uygular.