Backups
Проєкт Supabase на паузі? Ваші дані нікуди не зникли
Supabase поставив ваш проєкт на паузу після тижня без активності. Нічого не видалено, кнопка Restore стоїть поруч із назвою, і у вас є рік, щоб натиснути.

Коротко
- Проєкт Supabase на паузі через неактивність не є видаленим проєктом. Дані заморожені на диску, а в панелі поряд з назвою стоїть кнопка Restore.
- У вас є рік від дня паузи, щоб відновити його з панелі Supabase. Безкоштовні проєкти стають на паузу приблизно після тижня низької активності.
- Після того року кнопку Restore замінює завантаження, і єдиний шлях назад веде через новий проєкт з новою URL і новими ключами.
- Безкоштовний тариф нічого не копіює, поки проєкт працює, тому єдина резервна копія, яка існує, знята в момент паузи.
Ваш застосунок перестав відповідати. Кожен запит повертається помилкою, а коли ви відкриваєте панель Supabase, поряд з назвою проєкту стоїть слово Paused і кнопка Restore там, де зазвичай були панелі. Нічого з того, що ви публікували, цього не спричинило, і ніщо вас не попередило.
Ось де помиляються обидві звичні відповіді. Перша каже, що вашої бази даних більше немає, і це ніколи не було правдою. Друга каже розслабитись, бо проєкт Supabase на паузі через неактивність досі тримає всі свої дані, тож натисніть Restore і живіть далі. Ця друга правдива сьогодні і тихо перестає бути правдивою в дату, якої ніхто не називає.
Уявіть проєкт як бокс на складі. Орендна плата припинилась, тому світло вимкнене, а двері зачинені. Ваші коробки всередині, точно такі, якими ви їх залишили. Саме там зараз стоїть ваш проєкт, і існує дата, після якої бокс звільняють.
Чи означає пауза, що проєкт Supabase видалено?
Ні. Проєкт зупинено, а зупинити не означає прибрати. Ваші таблиці, ваші рядки, ваші правила Row Level Security і файли, які завантажили ваші користувачі, далі лежать на диску. Вимкнули базу даних перед ними, і тому ваш застосунок отримує помилку на кожен запит.
Саме цей розрив робить паніку зрозумілою. Ззовні застосунок зламаний так, як ламається застосунок, коли зникла його база даних: порожні списки, завантаження, які ніколи не завершуються, помилка на кожному збереженні. З панелі це проєкт із кнопкою на ньому.
Supabase ставить на паузу проєкти на безкоштовному тарифі і лише на ньому. За їхньою власною документацією, застосунки безкоштовного тарифу, які показують низьку активність протягом семи днів, можуть бути поставлені на паузу заради економії серверних ресурсів, а платні проєкти не ставлять на паузу через неактивність узагалі. Їхня сторінка про паузу саме та, яку варто прочитати, бо все нижче тут залежить від чисел, які належать їм.
Чому Supabase поставив мій проєкт на паузу?
Бо з ним приблизно тиждень ніхто не розмовляв.
Активність означає запити. Відкриття проєкту в панелі рахується. Ваш застосунок, який звертається до бази, рахується. Не рахується те, що ваш застосунок просто існує, тож проєкт, який запустився минулого місяця і ще не знайшов відвідувачів, має саме ту форму, яку ставлять на паузу. З відвідуваними застосунками це трапляється майже ніколи.
Безкоштовний тариф до того ж дозволяє два активні проєкти одночасно, і поставлені на паузу перестають рахуватися проти цього ліміту. Тож проєкт, який ви відклали навмисне, і проєкт, який зупинився сам, виглядають у панелі однаково, і обидва вже біжать проти того самого річного годинника.
Як відновити проєкт Supabase з паузи?
Відкрийте панель, виберіть проєкт і натисніть Restore. Усередині вікна це вся процедура, і це кілька хвилин очікування замість міграції.
Повертається той проєкт, який у вас був. Той самий ідентифікатор проєкту, отже та сама URL API. Ті самі таблиці, ті самі правила, ті самі бакети Storage. Supabase піднімає безкоштовні проєкти на найновішій мінорній версії Postgres у межах відновлення, і ви цього не помітите.
Ключі можуть повернутися не такими, якими були. Supabase попереджав, що проєкти,
відновлені після 1 листопада 2025 року, більше не отримують застарілих ключів
anon і service_role. За словами самого
Supabase, відновлені
проєкти з паузи ризикують зламатися, бо в них не буде застарілих ключів. Якщо
ваш застосунок досі надсилає старий ключ anon, довгий рядок, що починається з
eyJ, будьте готові, що його запити відхилятимуть, щойно проєкт повернеться.
Розв’язок у тому, щоб прописати публічний ключ проєкту, той, що починається з
sb_publishable_, у налаштуваннях середовища вашого білдера. Два формати
ключів порівняно поруч.
Зробіть одну річ, перш ніж закрити вкладку: зніміть копію даних, поки база працює. Проєкт на паузі є єдиним станом, у якому ви не можете експортувати нічого, а причина зробити це сьогодні, а не наступного тижня, стоїть у годиннику з наступного розділу.
Поки ваш застосунок знову працює, варто також знати, що він показує сторонньому. Наше безкоштовне сканування читає ваш сайт ззовні і каже, що знаходить. Воно триває близько 20 секунд і не потребує акаунта: просканувати застосунок.
Скільки часу я маю на відновлення?
Рік від дня паузи. Supabase формулює це так: після того, як проєкт поставлено на паузу, є річне вікно, щоб відновити його на платформі із Supabase Studio.
Перевірте це число, а не довіряйте йому, бо воно вже одного разу змінювалось. Коли ліміт запровадили у червні 2024 року, він становив 90 днів, і все, що написали про проєкти на паузі до того, як Supabase розширив вікно, досі каже 90. Їхня власна довідкова стаття є найяскравішим свідченням: сторінка каже рік, а URL, за якою вона живе, досі каже 90 днів.
Порахуйте дату і запишіть її в календар, поки думаєте про це. Це рік від дня, коли проєкт став на паузу, а це майже ніколи не рік від дня, коли ви помітили.
Кнопки Restore немає. Що відбувається тепер?
Ви отримуєте завантаження замість відновлення, і ця різниця більша, ніж звучить.
Щойно вікно закрилося, Supabase замінює опцію відновлення на дві речі, які ви можете забрати: остання логічна резервна копія, знята безпосередньо перед паузою, і всі ваші об'єкти Storage. Обидві забираються зі сторінки огляду проєкту. Ваші дані у тих файлах. Вашого проєкту там немає, і він не повернеться.
Supabase документує міграцію, яка йде далі. Це п'ять кроків, і разом вони хочуть клієнт Postgres, CLI Supabase і токен доступу до Management API.
| Що ви повертаєте | Як воно туди потрапляє |
|---|---|
| Таблиці, рядки, типи стовпців, індекси і правила Row Level Security | Усередині файлу .backup, відтвореного у свіжому проєкті через psql |
| Файли, які завантажили ваші користувачі | Завантажуються окремо зі сторінки огляду, а потім копіюються в нові бакети через CLI Supabase |
| Налаштування Auth, Realtime, Storage і API | Supabase публікує скрипт, який переносить їх через свій Management API |
| Розширення, вебхуки бази даних і публікації Realtime | Їх ви вмикаєте назад вручну в новому проєкті |
| Вашу URL API і ваші ключі | Їх ви не повертаєте. Новий проєкт має новий ідентифікатор, тож URL і кожен ключ змінюються з ним, і все, що тримає старі, доводиться оновлювати |
Саме останній рядок люди дізнаються надто пізно. Адреса, якою користувався ваш застосунок, належить проєкту, який ви щойно втратили, тож перебудова є не лише роботою з даними. Змінні середовища у вашому білдері, усе, що ви вставили прямо в код, кожен вебхук, платіжний сервіс чи інструмент аналітики, який вказує на стару URL: кожне з цього є місцем, де застосунок ламається вже після того, як дані благополучно повернулися.
Після цього є ще один рядок, і до нього не додається жодного порятунку. Нотатка Supabase звучить прямо: щойно проєкт видалено, усі пов'язані дані разом із резервними копіями прибираються назавжди і не можуть бути відновлені. Якщо ваша панель зараз пропонує вам завантаження, заберіть їх негайно.
Чи зберігає безкоштовний тариф копію, поки проєкт на паузі?
Вона рівно одна, і це не та страхувальна сітка, яку уявляє більшість.
Безкоштовний тариф не знімає жодних запланованих копій. Поки ваш проєкт працює, нічого нікуди не копіюється, і про це краще знати до того, як щось піде не так, а не під час. Копія, яка з'являється у вашій панелі, коли вікно відновлення закривається, є однією логічною копією, знятою в момент паузи, і доступною для завантаження вона стає рівно в той момент, коли відновити вже не можна.
Звідси випливають дві речі. Копія має дату того дня, коли ваш проєкт зупинився, і це виявляється прийнятним, бо проєкт на паузі відтоді не прийняв жодного запису. І вона живе в тому самому акаунті, що й проєкт, з якого вийшла, за тим самим логіном, під тим самим видаленням. Вона стоїть у боксі, за тими самими дверима.
Момент зняти власну копію настає тоді, коли проєкт знову працює. Зробити її з панелі, не торкаючись термінала, є шляхом безкоштовного тарифу, а три способи зробити резервну копію бази даних Supabase порівнює, скільки коштує кожен.
Як не дати цьому статися знову?
Давайте проєкту щось, на що відповісти, кожні кілька днів, або заберіть його з безкоштовного тарифу.
Supabase рахує активністю відкриття проєкту в панелі та запити, які надходять з вашого підключеного застосунку. Тож запланованого завдання, яке викликає вашу базу раз на день, достатньо, щоб тримати лічильник притомним, а невеликий cron-сервіс або запланований робочий процес у вашому репозиторії коду є звичним способом таке налаштувати.
Перехід на Pro знімає питання, а не керує ним. Платні проєкти не ставлять на паузу через неактивність, і саме на Pro починаються щоденні резервні копії самого Supabase, з вікном у сім днів. Що ще змінює Pro, ліміт за лімітом, описано в окремій статті.
Що зробити цього тижня
Що робити
- Натисніть Restore сьогодні, якщо кнопка на місці. Це кілька хвилин, і це єдиний шлях, який зберігає вашу URL. Якщо ваш застосунок досі використовує старий ключ
anon, дайте йому публічний ключ, щойно проєкт повернеться. - Якщо кнопка зникла, насамперед завантажте файл резервної копії і ваші файли зі Storage. Видалений проєкт забирає їх із собою.
- Зніміть власну копію бази, щойно проєкт запрацює, бо безкоштовний тариф не знімає її за вас.
- Поставте на таймер щось, що викликає ваш проєкт, і подбайте про те, щоб ви помітили, якщо цей таймер зупиниться.
- Тримайте одну копію даних поза вашим акаунтом Supabase, там, куди не дістанеться ні пауза, ні прострочене вікно, ні видалення.
Де тут місце Reeve Care
Пауза є збоєм, який на збій не схожий. Ваші сторінки далі завантажуються, бо їх віддає ваш білдер; зупинилося все, що стоїть за ними. У цьому й полягає значна частина відповіді на питання, чому вам ніхто не сказав.
- Проєкт на паузі неможливо скопіювати, а копія, яка не вдалася, надсилає вам лист. Care підключається до вашої бази за власним розкладом, а не чекає, поки помітить ваш застосунок, тож ніч, коли база перестає відповідати, є тією ніччю, коли ви про це дізнаєтесь.
- Копія живе поза вашим акаунтом Supabase. Зашифрована, на сховищі, яке тримаємо ми, тож проєкт, що став на паузу, прострочився або був видалений, не забирає резервні копії за собою.
- Кожну копію перечитують, перш ніж вона зарахується. Дата у вашій панелі є останньою копією, яка пройшла цю перевірку, і ніколи не останньою спробою.
- Відновлення є кнопкою, і перед стартом знімається знімок поточного стану, тож навіть у відновлення є власне скасування.
- Файли, які завантажили ваші користувачі, копіюються теж, щойно ви підключите свої бакети Storage. Це другий ключ, і він необов'язковий, бо ключ, який Supabase видає для Storage, вміє не лише читати, а й писати, і ми радше попросимо його окремо, ніж змішаємо з тим, який писати не вміє.
Дві межі, перш ніж ви щось вирішите. Сьогодні Care робить резервні копії Supabase і більше нічого, і якщо ваші дані живуть деінде, ми скажемо це до оплати, а не після. І ніщо з цього не завадить проєкту стати на паузу: пауза відбувається всередині Supabase, де ми є таким самим клієнтом, як і будь-хто інший. Змінюється те, де стоять ваші дані в день, коли це станеться.
Залиште резервні копії самого Supabase увімкненими теж, у той день, коли перейдете на платний тариф. Дві копії у двох місцях є цілою ідеєю, і дешевша з них уже входить у ваш рахунок. Що включає кожен тариф, написано на сторінці тарифів, а копіювання, перевірка і відновлення розкладені покроково на сторінці резервних копій Supabase.
Перш ніж закрити цю вкладку, відкрийте панель і подивіться, яку з двох кнопок пропонує вам проєкт. Цей один факт вирішує, чи сьогодні буде п'ять хвилин очікування, чи перебудова, а 10-хвилинний чеклист безпеки охоплює резервні копії разом з усім іншим, що варто перевірити, коли ваш застосунок знову відповідає.
Поширені запитання
Чи означає пауза, що проєкт Supabase видалено?
Ні. Пауза зупиняє базу даних, вона нічого не прибирає. Ваші таблиці, рядки, правила Row Level Security і завантажені файли далі лежать на диску, і саме тому панель пропонує вам кнопку Restore, а не вибачення. Пауза ламає саме ваш застосунок, бо кожен його запит тепер повертається помилкою.
Скільки часу я маю, щоб відновити проєкт Supabase з паузи?
Рік від дня паузи. Supabase описує це як річне вікно, протягом якого проєкт можна відновити із Supabase Studio. Це число вже змінювалося: коли ліміт запровадили у червні 2024 року, він становив 90 днів, і довідкова стаття, яку Supabase публікує на цю тему, досі містить 90 днів у своїй URL. Читайте чинне значення на їхній сторінці про паузу, а не в когось іншого.
У мого проєкту немає кнопки Restore. Що тепер?
Вікно закрилося, і Supabase замінив цю кнопку на два завантаження: остання логічна резервна копія, знята безпосередньо перед паузою, і всі ваші файли зі Storage. Обидва лежать на сторінці огляду проєкту. Ваші дані там, а повернення до робочого застосунку проходить через створення нового проєкту і завантаження цих файлів у нього. Заберіть обидва сьогодні, бо видалений проєкт назавжди забирає свої копії з собою.
Чи залишаться ті самі URL проєкту і ключі API?
Якщо ви натиснете Restore усередині вікна, URL залишиться: проєкт повертається з тим самим ідентифікатором, з якого побудована ваша URL. А от ключі можуть і не залишитися. Supabase попереджав, що проєкти, відновлені після 1 листопада 2025 року, повертаються без застарілих ключів anon і service_role, тож застосунку, який досі використовує ключ anon, натомість потрібен публічний ключ проєкту. Якщо ж доводиться перебудовуватись у новий проєкт, змінюється і те, й інше: новий проєкт має новий ідентифікатор, тож URL API і кожен ключ змінюються разом з ним. Це означає оновити змінні середовища у вашому білдері та все інше, де записана стара адреса, включно з вебхуками і сторонніми сервісами.
Як не дати Supabase знову поставити проєкт на паузу?
Давайте йому щось, на що відповісти, хоча б раз на тиждень, або заберіть його з безкоштовного тарифу. Supabase рахує активністю відкриття панелі та запити з вашого підключеного застосунку, тож заплановане завдання, яке викликає проєкт раз на день, тримає лічильник притомним. Перехід на Pro знімає питання повністю, бо платні проєкти не ставлять на паузу через неактивність, і саме там починаються щоденні резервні копії.
Мій проєкт зник із панелі, він не на паузі. Чи можна його повернути?
Спершу з'ясуйте, який саме випадок у вас, бо це різні ситуації. Проєкт на паузі досі є у списку, з кнопкою Restore біля назви, а дані заморожені на диску. Якщо його немає зовсім, панель не дає жодного способу скасувати видалення: лишаються звернення до підтримки Supabase і копія, яку ви зробили самі. Друге і є повним аргументом на користь того, щоб мати резервну копію до того дня, коли вона знадобиться.