عمليات الترحيل

تعرّف على كيفية إنشاء عمليات ترحيل قاعدة البيانات وإدارتها في تطبيقك.

ملاحظة: هذا محتوى تجريبي/مؤقت لأغراض العرض التوضيحي.

تتيح لك عمليات ترحيل قاعدة البيانات إخضاع تغييرات مخطط قاعدة البيانات لنظام التحكم في الإصدارات، وتطبيقها بشكل متّسق عبر البيئات المختلفة.

إنشاء عملية ترحيل

لإنشاء عملية ترحيل جديدة، استخدم الأمر التالي:

pnpm --filter web supabase:db:diff

سيؤدي ذلك إلى إنشاء ملف ترحيل جديد في المجلد apps/web/supabase/migrations استنادًا إلى الفروقات بين قاعدة بياناتك المحلية وملفات المخطط.

تطبيق عمليات الترحيل

لتطبيق عمليات الترحيل على قاعدة بياناتك المحلية:

pnpm --filter web supabase migrations up

أفضل ممارسات الترحيل

  1. اختبر عمليات الترحيل محليًا أولًا دائمًا قبل تطبيقها على بيئة الإنتاج
  2. اجعل عمليات الترحيل قابلة للتراجع متى أمكن ذلك من خلال تضمين عبارات DOWN
  3. استخدم المعاملات لضمان تنفيذ العمليات بشكل ذرّي
  4. أضف الفهارس للمفاتيح الخارجية والأعمدة التي يكثر الاستعلام عنها
  5. ضمّن سياسات 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

سيؤدي ذلك إلى حذف جميع الجداول وإعادة تطبيق جميع عمليات الترحيل من البداية.