عمليات الترحيل
تعرّف على كيفية إنشاء عمليات ترحيل قاعدة البيانات وإدارتها في تطبيقك.
ملاحظة: هذا محتوى تجريبي/مؤقت لأغراض العرض التوضيحي.
تتيح لك عمليات ترحيل قاعدة البيانات إخضاع تغييرات مخطط قاعدة البيانات لنظام التحكم في الإصدارات، وتطبيقها بشكل متّسق عبر البيئات المختلفة.
إنشاء عملية ترحيل
لإنشاء عملية ترحيل جديدة، استخدم الأمر التالي:
pnpm --filter web supabase:db:diff
سيؤدي ذلك إلى إنشاء ملف ترحيل جديد في المجلد apps/web/supabase/migrations استنادًا إلى الفروقات بين قاعدة بياناتك المحلية وملفات المخطط.
تطبيق عمليات الترحيل
لتطبيق عمليات الترحيل على قاعدة بياناتك المحلية:
pnpm --filter web supabase migrations up
أفضل ممارسات الترحيل
- اختبر عمليات الترحيل محليًا أولًا دائمًا قبل تطبيقها على بيئة الإنتاج
- اجعل عمليات الترحيل قابلة للتراجع متى أمكن ذلك من خلال تضمين عبارات DOWN
- استخدم المعاملات لضمان تنفيذ العمليات بشكل ذرّي
- أضف الفهارس للمفاتيح الخارجية والأعمدة التي يكثر الاستعلام عنها
- ضمّن سياسات RLS في عملية الترحيل نفسها التي تُنشئ الجدول
مثال على عملية ترحيل
-- Create a new table 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() ); -- Add RLS ALTER TABLE tasks ENABLE ROW LEVEL SECURITY; -- Create policies CREATE POLICY "Users can view their account tasks" ON tasks FOR SELECT USING (account_id IN (SELECT get_user_accounts(auth.uid())));
إعادة تعيين قاعدة البيانات
لإعادة تعيين قاعدة بياناتك المحلية بالكامل باستخدام أحدث مخطط:
pnpm supabase:web:reset
سيؤدي ذلك إلى حذف جميع الجداول وإعادة تطبيق جميع عمليات الترحيل من البداية.