DEVLOPN Audit

Mon Supabase gratuit se mettait en pause tous les 7 jours — réglé en 5 lignes de SQL

Le plan gratuit de Supabase met votre projet en pause après 7 jours d'inactivité. Solution élégante avec pg_cron — la base génère sa propre activité.

Si tu héberges un side-project sur le plan gratuit de Supabase, tu connais la douleur : 7 jours sans activité, le projet passe en pause, et ton app sert une 503 au pire moment.

Ne laissez jamais votre BD s'endormir — gardez votre projet Supabase gratuit en vie de l'intérieur avec pg_cron

La solution élégante

Faire vivre la base depuis l'intérieur, avec pg_cron, déjà dispo sur Supabase.

Le principe :

  • une mini-table « sentinelle » (zéro donnée métier, verrouillée par RLS)
  • une fonction qui y écrit un timestamp
  • un job planifié qui tourne tout seul
create extension if not exists pg_cron;
select cron.schedule(
  'keep-alive',
  '0 6 */2 * *',  -- tous les 2 jours à 6h
  $$ update public.keep_alive set last_ping = now() where id = 1; $$
);

La base génère sa propre activité, le compteur d'inactivité ne retombe jamais à zéro.

L'ironie

Quelque part, un serveur reste éclairé toute la nuit juste pour écrire « je suis vivant » dans une table. 💡

Vous avez une solution plus écolo ? Je prends. 🌱