Перейти к содержимому

Храните данные приложения в своём Supabase

КраткоПодключите Supabase в разделе «Облачные сервисы → Облако» по строке подключения вашего проекта. MonstarX посчитает таблицы, строки и аккаунты, а когда вы нажмёте «Перенести моё приложение», скопирует всё в Supabase, проверит, что дошла каждая строка, переключит приложение на новую базу и перепишет код. После этого данные хранятся только в Supabase; кнопка «Вернуть данные» переносит их обратно.

У каждого приложения MonstarX есть своя база данных — там хранится его информация: записи, заказы, регистрации. Если вы предпочитаете держать эту информацию в своём проекте Supabase (популярная облачная база данных Postgres), MonstarX может перенести её туда и переделать приложение под новую базу.

Приложение хранит данные только в одном месте: в базе MonstarX или в вашей, но не в обеих сразу. Поэтому подключение Supabase — это перенос, а не копия.

Выбирайте его, если:

  • ваша компания уже работает на Supabase или по её правилам данные клиентов должны храниться в её собственном аккаунте;
  • вы хотите открывать данные напрямую в панели Supabase, редакторе SQL или инструментах отчётности;
  • вы хотите сами управлять резервными копиями и доступом к базе.

Если ничего из этого вам не подходит, проще остаться на собственной базе MonstarX: ничего не нужно настраивать и ни за что не нужно платить отдельно. См. База данных приложения.

  • Создайте новый пустой проект Supabase. MonstarX сам создаёт таблицы и не примет проект, где уже есть таблицы с такими же названиями и строками в них.
  • Держите под рукой пароль базы данных. Вы задали его, когда создавали проект Supabase.
  • Если приложение хранит данные в Firestore (см. Firebase), сначала верните его на базу MonstarX.
  1. В Supabase откройте свой проект и нажмите Connect. Скопируйте строку подключения Transaction pooler и замените [YOUR-PASSWORD] паролем своей базы данных.

  2. В MonstarX откройте проект, нажмите Облачные сервисы на верхней панели, а затем Облако.

  3. В списке Подключения нажмите Подключить рядом с Supabase — или выберите Supabase (Postgres) в блоке Где это приложение хранит свои данные: откроется та же форма.

  4. Вставьте строку подключения в поле Строка подключения. Остальные поля необязательные:

    • URL проекта и Ключ anon — только если приложение должно пользоваться ещё и API или хранилищем самого Supabase;
    • Ключ service role — храните его в секрете. Поле можно оставить пустым: ключ нужен для переноса входа или файлов в Supabase, а этого перенос пока не делает.
  5. Нажмите Подключить Supabase. Прежде чем что-либо сохранить, MonstarX проверит, что может создавать там таблицы.

  6. В чате появится карточка Перенести данные этого приложения в Supabase с тем, что MonstarX нашёл, — например, «6 таблиц · 214 строк · 3 аккаунта · ничего не изменится без вашего согласия». На ней также сказано, что останется на своём месте.

  7. Нажмите Перенести моё приложение (или Не сейчас, чтобы решить позже).

Затем карточка показывает каждый шаг по мере выполнения:

  1. Проверка соединения
  2. Чтение данных вашего приложения
  3. Создание таблиц в Supabase
  4. Копирование строк
  5. Проверка полноты переноса
  6. Переключение приложения на Supabase
  7. Изменение кода приложения

Когда всё будет готово, на карточке появится Ваше приложение теперь работает на Supabase, а у карточки База данных в разделе Облачные сервисыОблако — метка На Supabase.

Что происходит
Таблицы и строкиКопируются в Supabase вместе со связями, индексами и счётчиками идентификаторов.
АккаунтыПереносятся вместе с данными, включая пароли, и продолжают работать. Сам вход остаётся таким, как сейчас устроен в приложении.
Загруженные файлыОстаются в хранилище файлов MonstarX. Все ссылки на них продолжают работать.
Код приложенияMonstarX переписывает под Postgres части, которые обращаются к базе данных, — в сборке, которую сам запускает.
Старая копия в MonstarXСохраняется нетронутой, чтобы можно было вернуться.

Перенести вход в Supabase Auth или файлы в Supabase Storage пока нельзя.

  • Ничего не меняется, пока не перенесена каждая строка. MonstarX сверяет число строк с обеих сторон, прежде чем переключить приложение. Если числа расходятся — например, кто-то пользовался приложением во время переноса, — перенос останавливается, а приложение остаётся ровно таким, каким было.
  • Неудачный или остановленный перенос убирает за собой. Он удаляет только созданные им таблицы и сообщает об этом на карточке. Чтобы остановить перенос самому, нажмите Остановить на карточке.
  • Проект ждёт. Пока идёт перенос, новые запросы ждут в очереди — как во время сборки.
  • Row-level security включена. Для каждой таблицы, которую MonstarX создаёт в Supabase, включена защита на уровне строк (row-level security), поэтому никто не может читать или менять данные через публичный API Supabase. Приложение обращается к данным через собственное закрытое подключение.

Да. Откройте Облачные сервисыОблако, нажмите Вернуть данные на карточке База данных и подтвердите. MonstarX скопирует всё обратно в свою базу, восстановит исходные типы столбцов приложения и снова перепишет код. Таблицы в вашем проекте Supabase останутся — там ничего не удаляется.

  • Supabase нельзя отключить, пока приложение им пользуется. MonstarX не даст этого сделать, иначе приложение останется без базы данных. Сначала верните данные.
  • Новые ключи должны вести к тем же данным. Если вы обновляете строку подключения, она должна указывать на базу, в которой есть таблицы приложения.
  • Supabase или Railway, но не оба сразу. Чтобы перейти с одного на другой, сначала верните данные в базу MonstarX. См. Railway.
  • Экспортированные и опубликованные приложения подключаются напрямую. Приложение само обращается к Supabase — и в предпросмотре, и после публикации, — поэтому экспортированная копия работает самостоятельно.
Пользователям придётся регистрироваться заново?

Нет. Их аккаунты и пароли переносятся в Supabase вместе с остальными данными и продолжают работать.

Данные после переноса будут храниться в обоих местах?

Нет. Приложение читает и записывает только Supabase. MonstarX хранит нетронутую старую копию на случай, если вы захотите вернуться, но приложение ею больше не пользуется.

Какую строку подключения использовать?

В Supabase нажмите Connect и скопируйте строку Transaction pooler, заменив [YOUR-PASSWORD] паролем своей базы данных.

Можно ли использовать проект Supabase, где уже есть данные?

Используйте пустой проект. MonstarX не примет проект, где уже есть таблицы с такими же названиями, как у приложения, и строками в них, — так ваши данные не будут перезаписаны.

Перенос платный?

Само копирование данных бесплатно. Последующая переделка кода — обычная сборка, а Supabase выставляет счёт вашему аккаунту Supabase по своим тарифам.