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
- Üretime uygulamadan önce migration'ları her zaman önce yerel ortamda test edin
- Mümkün olduğunda DOWN ifadeleri ekleyerek migration'ları geri alınabilir yapın
- İşlemlerin atomik olmasını sağlamak için transaction kullanın
- Yabancı anahtarlar ve sık sorgulanan sütunlar için indeks ekleyin
- 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.