برنامه نویسی

توقف پروژه های Supabase را متوقف کنید

Summarize this content to 400 words in Persian Lang

پروژه های Supabase خود را با Supabase Inactive Fix و Supabase Pause Prevention فعال نگه دارید

Supabase یک پلتفرم قدرتمند باطن به عنوان یک سرویس است که بر روی Postgres ساخته شده است و میزبانی پایگاه داده، احراز هویت و سایر خدمات ضروری را به توسعه دهندگان ارائه می دهد. با این حال، اگر چندین پروژه جانبی را در Supabase اجرا می کنید، احتمالاً با توقف وحشتناک عدم فعالیت مواجه شده اید: اگر 7 روز بدون فعالیت بگذرد، پروژه Supabase شما متوقف می شود و پایگاه داده غیرفعال می شود.

برای کمک به جلوگیری از این موضوع، من دو پروژه GitHub ایجاد کرده‌ام که فعالیت پایگاه داده را برای جلوگیری از مکث خودکار می‌کنند: Supabase Inactive Fix، نوشته شده در Python، و Supabase Pause Prevention، طراحی شده برای پروژه‌های Next.js. در این پست، نحوه راه‌اندازی و استفاده از این ابزارها را برای اجرای روان پروژه‌های جانبی خود بدون مداخله دستی به شما آموزش می‌دهم.

چرا Supabase پروژه های غیر فعال را متوقف می کند؟

Supabase هر پروژه ای را که فعالیتی را برای 7 روز متوالی مشاهده نمی کند متوقف می کند. اگرچه این یک اقدام عالی برای صرفه جویی در هزینه است، اما می تواند باعث ناامیدی توسعه دهندگان با پروژه های جانبی یا برنامه هایی شود که اغلب به آنها دسترسی ندارند. هنگامی که پروژه متوقف می شود، مدتی طول می کشد تا پایگاه داده در صورت نیاز دوباره آنلاین شود و سرعت توسعه و تجربه کاربر را کاهش دهد.

خبر خوب این است که می‌توانید پایگاه داده‌های خود را با برقراری تماس‌های خودکار با پروژه‌های خود فعال نگه دارید و اطمینان حاصل کنید که فعالیت قبل از پایان پنجره ۷ روزه ثبت می‌شود.

رفع غیر فعال Supabase: یک راه حل مبتنی بر پایتون (توصیه می شود)

رفع غیر فعال Supabase یک اسکریپت پایتون است که برای جلوگیری از غیر فعال شدن پایگاه داده های Supabase شما طراحی شده است. با برقراری تماس‌های منحصربه‌فرد با هر پایگاه داده Supabase Postgres که برای تماشای آن پیکربندی می‌کنید، کار می‌کند و اطمینان حاصل می‌کند که فعالیت لازم ثبت شده است. شما به راحتی می توانید آن را طوری تنظیم کنید که به عنوان یک کار cron روی هر سرور یا کامپیوتری اجرا شود.

ویژگی های کلیدی:

برای انعطاف پذیری و سهولت استفاده در پایتون نوشته شده است.
می توان آن را برای تماشای چندین پایگاه داده پیکربندی کرد.
به عنوان یک کار برنامه ریزی شده cron اجرا می شود تا فرآیند را خودکار کند.

توجه: Supabase Inactive Fix هر پروژه Supabase را فعال نگه می دارد – به هیچ وجه به پروژه های Python محدود نمی شود.

نحوه تنظیم Supabase Inactive Fix:

1. مخزن را شبیه سازی کنید:

با شبیه سازی مخزن Supabase Inactive Fix GitHub شروع کنید.

git clone https://github.com/travisvn/supabase-inactive-fix

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2. Dependencies را نصب کنید:

به پوشه پروژه بروید و وابستگی های مورد نیاز را با استفاده از آن نصب کنید پیپ.

cd supabase-inactive-fix

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
pip install -r requirements.txt

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

3. پایگاه های داده خود را پیکربندی کنید:

در داخل پروژه، یک فایل پیکربندی وجود دارد config.json جایی که می توانید پایگاه داده های Supabase را که می خواهید فعال نگه دارید اضافه کنید. شما به URL پروژه Supabase و کلیدهای API خود نیاز دارید.

[
{
“name”: “Database1”,
“supabase_url”: “https://your-supabase-url-1.supabase.co”,
“supabase_key_env”: “SUPABASE_KEY_1”, // Use environment variable for the key
“table_name”: “KeepAlive”
},
{
“name”: “Database2”,
“supabase_url”: “https://your-supabase-url-2.supabase.co”,
“supabase_key”: “your-direct-supabase-key”, // Directly define the key
“table_name”: “keep-alive”
}
]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

4. راه اندازی یک Cron Job:

برای اطمینان از فعال ماندن پایگاه‌های داده‌تان، اسکریپت را حداقل یک بار در هفته برنامه‌ریزی کنید. اگر از سیستم لینوکس یا مک استفاده می‌کنید، می‌توانید یک cron job را مانند این راه‌اندازی کنید:

crontab -e

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خط زیر را اضافه کنید تا اسکریپت هر روز در نیمه شب اجرا شود:

0 0 * * 1,4 cd /path/to/your/project && /path/to/your/project/venv/bin/python main.py >> /path/to/your/project/logfile.log 2>&1

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این تضمین می کند که پایگاه داده های Supabase شما همیشه در پنجره 7 روزه فعالیت دارند و از توقف آنها جلوگیری می کند.

README را برای توضیح دقیق و راهنما مشاهده کنید

Supabase Pause Prevention: جایگزینی با استفاده از Next.js

برای کسانی که کار با Next.js را ترجیح می دهند، Supabase Pause Prevention گزینه دیگری است. اگرچه به ساده‌ترین راه‌حل پایتون نیست، اما با برقراری تماس با APIهای پروژه‌های دیگر در راه‌اندازی Supabase، به همین منظور عمل می‌کند و اطمینان می‌دهد که هر پروژه فعالیت‌ها را ثبت می‌کند.

ویژگی های کلیدی:

به طور خاص برای پروژه های Next.js با استفاده از Supabase طراحی شده است.
با برقراری تماس های API برای فعال نگه داشتن پایگاه های داده از توقف پروژه جلوگیری می کند.
ادغام آسان با تنظیمات Next.js موجود شما.

نحوه تنظیم Supabase Pause Prevention:

راه حل / چگونه کار می کند

ایجاد یک کرون کار (کار برنامه ریزی شده) که یک تماس ساده با پایگاه داده انجام می دهد

(این کار پروژه Supabase شما را فعال نگه می دارد)

واکشی keep-alive.ts نقاط پایانی API برای پروژه های دیگر، زیرا Vercel کاربران لایه آزاد را به یک کار cron محدود می کند.

شروع به کار

فوق العاده ساده برای اضافه کردن به پروژه Supabase موجود خود!

پروژه اصلی خود را پیکربندی کنید

فقط 3 فایل مهم است

utils/supabase پوشه حاوی فایل های ارائه شده در اسناد Supabase برای نسخه نمایشی برنامه وب Next.js – Supabase است.

همه چیز دیگر از Next.js boilerplate است create-next-app

پیکربندی سایر پروژه های Supabase

پس از انتخاب پروژه اصلی خود (کسی که کد ارائه شده در این مخزن را پیاده سازی می کند)، می خواهید یک نقطه پایانی API را به سایر پروژه های Supabase خود اضافه کنید

تنها شرط لازم این است که این نقطه پایانی قابل دسترسی باشد و با پایگاه داده Supabase شما تماس بگیرد

نقطه پایانی API باید با پایگاه داده تماس برقرار کنداطمینان حاصل کنید که سرور این را کش نمی کند

برای جزئیات بیشتر در اینجا به README مراجعه کنید

SQL نمونه

هر جدول و ستونی را می‌توان فراخوانی کرد، اما اگر ترجیح می‌دهید با یک عمومی استفاده کنید، در اینجا یک جستجوی SQL برای یک keep-alive جدول

CREATE TABLE “keep-alive” (
id BIGINT generated BY DEFAULT AS IDENTITY,
name text NULL DEFAULT ”:: text,
random uuid NULL DEFAULT gen_random_uuid (),
CONSTRAINT “keep-alive_pkey” PRIMARY key (id)
);

INSERT INTO
“keep-alive”(name)
VALUES
(‘placeholder’),
(‘example’);

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون است به شدت توصیه می شود برای استفاده از a keep-alive جدولی مانند جدول بالااین با توجه به ویژگی های اضافه شده برای اختیاری اقدامات درج و حذف پایگاه داده

README را برای توضیح دقیق و راهنما مشاهده کنید

پیچیدن آن

چه بخواهید از پایتون استفاده کنید یا در پروژه Next.js موجود خود ادغام کنید، رفع غیر فعال Supabase و پیشگیری از توقف Supabase هر دو روش بسیار خوبی برای جلوگیری از توقف موقت پایگاه داده های Supabase به دلیل عدم فعالیت هستند. تنها با چند مرحله، می توانید اسکریپت های خودکار را تنظیم کنید تا مطمئن شوید که پروژه های شما همیشه آنلاین و آماده استفاده هستند.

مخازن موجود در GitHub را بررسی کنید:

راه اندازی هر دوی این ابزارها آسان است و شما را از مشکل لغو مکث دستی پایگاه داده خود هر هفته نجات می دهد.

اگر سوالی دارید، در نظر بگیرید!

پروژه های Supabase خود را با Supabase Inactive Fix و Supabase Pause Prevention فعال نگه دارید

Supabase یک پلتفرم قدرتمند باطن به عنوان یک سرویس است که بر روی Postgres ساخته شده است و میزبانی پایگاه داده، احراز هویت و سایر خدمات ضروری را به توسعه دهندگان ارائه می دهد. با این حال، اگر چندین پروژه جانبی را در Supabase اجرا می کنید، احتمالاً با توقف وحشتناک عدم فعالیت مواجه شده اید: اگر 7 روز بدون فعالیت بگذرد، پروژه Supabase شما متوقف می شود و پایگاه داده غیرفعال می شود.

برای کمک به جلوگیری از این موضوع، من دو پروژه GitHub ایجاد کرده‌ام که فعالیت پایگاه داده را برای جلوگیری از مکث خودکار می‌کنند: Supabase Inactive Fix، نوشته شده در Python، و Supabase Pause Prevention، طراحی شده برای پروژه‌های Next.js. در این پست، نحوه راه‌اندازی و استفاده از این ابزارها را برای اجرای روان پروژه‌های جانبی خود بدون مداخله دستی به شما آموزش می‌دهم.

چرا Supabase پروژه های غیر فعال را متوقف می کند؟

Supabase هر پروژه ای را که فعالیتی را برای 7 روز متوالی مشاهده نمی کند متوقف می کند. اگرچه این یک اقدام عالی برای صرفه جویی در هزینه است، اما می تواند باعث ناامیدی توسعه دهندگان با پروژه های جانبی یا برنامه هایی شود که اغلب به آنها دسترسی ندارند. هنگامی که پروژه متوقف می شود، مدتی طول می کشد تا پایگاه داده در صورت نیاز دوباره آنلاین شود و سرعت توسعه و تجربه کاربر را کاهش دهد.

خبر خوب این است که می‌توانید پایگاه داده‌های خود را با برقراری تماس‌های خودکار با پروژه‌های خود فعال نگه دارید و اطمینان حاصل کنید که فعالیت قبل از پایان پنجره ۷ روزه ثبت می‌شود.

رفع غیر فعال Supabase: یک راه حل مبتنی بر پایتون (توصیه می شود)

رفع غیر فعال Supabase یک اسکریپت پایتون است که برای جلوگیری از غیر فعال شدن پایگاه داده های Supabase شما طراحی شده است. با برقراری تماس‌های منحصربه‌فرد با هر پایگاه داده Supabase Postgres که برای تماشای آن پیکربندی می‌کنید، کار می‌کند و اطمینان حاصل می‌کند که فعالیت لازم ثبت شده است. شما به راحتی می توانید آن را طوری تنظیم کنید که به عنوان یک کار cron روی هر سرور یا کامپیوتری اجرا شود.

ویژگی های کلیدی:

  • برای انعطاف پذیری و سهولت استفاده در پایتون نوشته شده است.
  • می توان آن را برای تماشای چندین پایگاه داده پیکربندی کرد.
  • به عنوان یک کار برنامه ریزی شده cron اجرا می شود تا فرآیند را خودکار کند.

توجه: Supabase Inactive Fix هر پروژه Supabase را فعال نگه می دارد – به هیچ وجه به پروژه های Python محدود نمی شود.

نحوه تنظیم Supabase Inactive Fix:

1. مخزن را شبیه سازی کنید:

با شبیه سازی مخزن Supabase Inactive Fix GitHub شروع کنید.

git clone https://github.com/travisvn/supabase-inactive-fix
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2. Dependencies را نصب کنید:

به پوشه پروژه بروید و وابستگی های مورد نیاز را با استفاده از آن نصب کنید پیپ.

cd supabase-inactive-fix
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

python -m venv venv
source venv/bin/activate  # On Windows use `venv\Scripts\activate`
pip install -r requirements.txt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

3. پایگاه های داده خود را پیکربندی کنید:

در داخل پروژه، یک فایل پیکربندی وجود دارد config.json جایی که می توانید پایگاه داده های Supabase را که می خواهید فعال نگه دارید اضافه کنید. شما به URL پروژه Supabase و کلیدهای API خود نیاز دارید.

[
  {
    "name": "Database1",
    "supabase_url": "https://your-supabase-url-1.supabase.co",
    "supabase_key_env": "SUPABASE_KEY_1",  // Use environment variable for the key
    "table_name": "KeepAlive"
  },
  {
    "name": "Database2",
    "supabase_url": "https://your-supabase-url-2.supabase.co",
    "supabase_key": "your-direct-supabase-key",  // Directly define the key
    "table_name": "keep-alive"
  }
]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

4. راه اندازی یک Cron Job:

برای اطمینان از فعال ماندن پایگاه‌های داده‌تان، اسکریپت را حداقل یک بار در هفته برنامه‌ریزی کنید. اگر از سیستم لینوکس یا مک استفاده می‌کنید، می‌توانید یک cron job را مانند این راه‌اندازی کنید:

crontab -e
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خط زیر را اضافه کنید تا اسکریپت هر روز در نیمه شب اجرا شود:

0 0 * * 1,4 cd /path/to/your/project && /path/to/your/project/venv/bin/python main.py >> /path/to/your/project/logfile.log 2>&1
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این تضمین می کند که پایگاه داده های Supabase شما همیشه در پنجره 7 روزه فعالیت دارند و از توقف آنها جلوگیری می کند.

README را برای توضیح دقیق و راهنما مشاهده کنید

Supabase Pause Prevention: جایگزینی با استفاده از Next.js

برای کسانی که کار با Next.js را ترجیح می دهند، Supabase Pause Prevention گزینه دیگری است. اگرچه به ساده‌ترین راه‌حل پایتون نیست، اما با برقراری تماس با APIهای پروژه‌های دیگر در راه‌اندازی Supabase، به همین منظور عمل می‌کند و اطمینان می‌دهد که هر پروژه فعالیت‌ها را ثبت می‌کند.

ویژگی های کلیدی:

  • به طور خاص برای پروژه های Next.js با استفاده از Supabase طراحی شده است.
  • با برقراری تماس های API برای فعال نگه داشتن پایگاه های داده از توقف پروژه جلوگیری می کند.
  • ادغام آسان با تنظیمات Next.js موجود شما.

نحوه تنظیم Supabase Pause Prevention:

راه حل / چگونه کار می کند

  • ایجاد یک کرون کار (کار برنامه ریزی شده) که یک تماس ساده با پایگاه داده انجام می دهد
    • (این کار پروژه Supabase شما را فعال نگه می دارد)
  • واکشی keep-alive.ts نقاط پایانی API برای پروژه های دیگر، زیرا Vercel کاربران لایه آزاد را به یک کار cron محدود می کند.

شروع به کار

فوق العاده ساده برای اضافه کردن به پروژه Supabase موجود خود!

پروژه اصلی خود را پیکربندی کنید

فقط 3 فایل مهم است

utils/supabase پوشه حاوی فایل های ارائه شده در اسناد Supabase برای نسخه نمایشی برنامه وب Next.js – Supabase است.

همه چیز دیگر از Next.js boilerplate است create-next-app

پیکربندی سایر پروژه های Supabase

پس از انتخاب پروژه اصلی خود (کسی که کد ارائه شده در این مخزن را پیاده سازی می کند)، می خواهید یک نقطه پایانی API را به سایر پروژه های Supabase خود اضافه کنید

تنها شرط لازم این است که این نقطه پایانی قابل دسترسی باشد و با پایگاه داده Supabase شما تماس بگیرد

نقطه پایانی API باید با پایگاه داده تماس برقرار کند

اطمینان حاصل کنید که سرور این را کش نمی کند

برای جزئیات بیشتر در اینجا به README مراجعه کنید

SQL نمونه

هر جدول و ستونی را می‌توان فراخوانی کرد، اما اگر ترجیح می‌دهید با یک عمومی استفاده کنید، در اینجا یک جستجوی SQL برای یک keep-alive جدول

CREATE TABLE "keep-alive" (
  id BIGINT generated BY DEFAULT AS IDENTITY,
  name text NULL DEFAULT '':: text,
  random uuid NULL DEFAULT gen_random_uuid (),
  CONSTRAINT "keep-alive_pkey" PRIMARY key (id)
);

INSERT INTO
  "keep-alive"(name)
VALUES
  ('placeholder'),
  ('example');
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اکنون است به شدت توصیه می شود برای استفاده از a keep-alive جدولی مانند جدول بالا

این با توجه به ویژگی های اضافه شده برای اختیاری اقدامات درج و حذف پایگاه داده

README را برای توضیح دقیق و راهنما مشاهده کنید

پیچیدن آن

چه بخواهید از پایتون استفاده کنید یا در پروژه Next.js موجود خود ادغام کنید، رفع غیر فعال Supabase و پیشگیری از توقف Supabase هر دو روش بسیار خوبی برای جلوگیری از توقف موقت پایگاه داده های Supabase به دلیل عدم فعالیت هستند. تنها با چند مرحله، می توانید اسکریپت های خودکار را تنظیم کنید تا مطمئن شوید که پروژه های شما همیشه آنلاین و آماده استفاده هستند.

مخازن موجود در GitHub را بررسی کنید:

راه اندازی هر دوی این ابزارها آسان است و شما را از مشکل لغو مکث دستی پایگاه داده خود هر هفته نجات می دهد.

اگر سوالی دارید، در نظر بگیرید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا