مشکلات رایج نود Supabase#
در اینجا برخی خطاها و مشکلات رایج در نود Supabase و اقدامات لازم برای رفع یا عیبیابی آنها آورده شده است.
فیتر کردن ردیفها بر اساس متادیتا#
برای فیلتر کردن ردیفها بر اساس متادیتای Supabase، نوع انتخاب (Select Type) را به رشته (String) تنظیم کنید.
سپس، میتوانید در پارامتر فیلترها (رشته) (Filters (String)) یک پرس و جو بسازید تا با استفاده از زبان استعلام متادیتای Supabase، که بر اساس انتخابنودای MongoDB است، متادیتا را فیلتر کنید. ویژگیهای متادیتا را با استفاده از عملگر JSON پیکان ->>
در Postgres، مانند این، دسترسی پیدا کنید (براکتهای کروی بخشهایی هستند که باید پر شوند):
metadata->>{your-property}={comparison-operator}.{comparison-value}
برای مثال، برای دسترسی به خاصیت age
در متادیتا و بازگرداندن نتایجی بزرگتر یا مساوی ۲۱، میتوانید در فیلد فیلترها (رشته) به صورت زیر وارد کنید:
metadata->>age=gte.21
میتوانید این عملنودا را برای ساخت پرسوجوهای پیچیدهتر ترکیب کنید.
کانکشن به پایگاه داده محلی Supabase هنگام استفاده از داکر#
وقتی که Supabase را در داکر اجرا میکنید، نیاز است که شبکه را پیکربندی کنید تا n98n بتواند به Supabase وصل شود.
راهحل بستگی دارد به نحوه میزبانی هر دو قسمت.
اگر فقط Supabase در داکر است#
اگر فقط Supabase در داکر اجرا میشود، فایل Docker Compose که توسط راهنمای میزبانی خود استفاده میشود، قبلاً Supabase را به رابطهای صحیح متصل کرده است.
هنگام پیکربندی اطلاعات کاربری Supabase، آدرس localhost
باید بدون مشکل کار کند (مکان Host را به localhost
تنظیم کنید).
اگر هر دو، نود n98n و Supabase در کانتینرهای مجزا در حال اجرا هستند#
اگر هر دو، n98n و Supabase، در داکر در کانتینرهای جداگانه اجرا میشوند، میتوانید از شبکهسازی داکر برای کانکشن آنها استفاده کنید.
سرویس Supabase را طوری پیکربندی کنید که روی تمام رابطها گوش دهد، با بایند کردن آن به 0.0.0.0
داخل کانتینر (پیکربندی رسمی docker compose این را انجام میدهد). اگر هنوز در شبکهسازی، این دو را در همان شبکه پل (bridge) کار نمیکنید، هر دو قسمت Supabase و n98n را به همان شبکه پل تعریفشده توسط کاربر اضافه کنید.
هنگام پیکربندی اطلاعات کاربری Supabase، به جای localhost
، از نام کانتینر دروازه API آن (supabase-kong
به صورت پیشفرض) به عنوان نشانی میزبان استفاده کنید. مثلا اگر تنظیمات پیشفرض را دارید، مقدار Host را http://supabase-kong:8000
قرار دهید.
رکوردها در PostgreSQL قابل دسترسی هستند اما در Supabase نه#
اگر درخواستهای رکوردها نتیجه خالی برمیگردانند در حالی که در نود Postgres یا با کلاینت Postgres قابل مشاهده هستند، ممکن است سیاست امنیت سطح ردیف (RLS) در Supabase مشکلساز باشد.
Supabase همیشه هنگام ایجاد جدول در اسکیمای عمومی با ویرایشگر جدول، RLS را فعال میکند. وقتی RLS فعال است، API تا زمانیکه سیاستها را نساختهاید، هیچ دادهای را با کلید anon
عمومی برنمیگرداند. این یک اقدام امنیتی است که فقط دادههایی را که قصد دارید، نشان میدهد.
برای دسترسی به دادههای یک جدول با فعال بودن RLS به عنوان نقش anon
، سیاستی بسازید تا الگوهای دسترسی موردنظر خود را فعال کنید.