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

База данных приложения

КраткоУ каждого приложения, которое создаёт MonstarX, есть своя закрытая база данных — она появляется при первой сборке. В разделе «Облачные сервисы → База данных» видны все таблицы, их строки и миграции, а ещё там можно выполнять SQL-запросы только на чтение. Чтобы добавить или изменить записи, откройте вкладку «Админ» или попросите в чате. Предпросмотр и опубликованное приложение работают с одними и теми же данными, а восстановление версии их не трогает.

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

Проектировать её вам не придётся. Когда вы просите функцию, которой нужно что-то запоминать, MonstarX сам добавляет нужные таблицы и пишет код, который читает и записывает в них данные.

  1. Откройте проект и нажмите Облачные сервисы на верхней панели.

  2. Нажмите База данных. Слева появится список Таблицы с числом строк в каждой.

  3. Нажмите на таблицу, чтобы увидеть её строки. MonstarX показывает первые 50.

В блоке над списком указано, где находится база данных и как она называется. Под таблицами в списке Миграции собраны все изменения, которые до сих пор вносились в базу (о них ниже). Чтобы пересчитать строки после того, как приложением попользовались, нажмите стрелку обновления рядом с Таблицы.

Четыре таблицы есть в любом приложении ещё до того, как вы что-то попросите: user, session, account и verification. В них хранятся люди, которые зарегистрировались в приложении, и их входы. См. Аккаунты пользователей. Все остальные таблицы MonstarX создаёт специально для вашего приложения — например, menu_items или recipes.

Да, чтобы что-то посмотреть. SQL — это язык, на котором говорят базы данных. Введите запрос в поле вверху и нажмите Выполнить. Ответ появится ниже в виде таблицы.

Например:

SELECT title, country_code, tags FROM recipes ORDER BY created_at DESC LIMIT 5

Полезно знать:

  • Поле работает только на чтение. Оно выполняет по одному оператору за раз и только те, что читают данные: SELECT, WITH, PRAGMA и EXPLAIN. Всё, что изменило бы данные, — INSERT, UPDATE, DELETE, DROP — отклоняется, так что случайно сломать приложение не получится.
  • Запрос показывает до 200 строк.
  • PRAGMA table_info(recipes) выводит столбцы таблицы.
  • Если данные приложения хранятся в Supabase или Railway Postgres, поле принимает SELECT, WITH, TABLE и EXPLAIN.

Как добавить, изменить или удалить записи?

Заголовок раздела «Как добавить, изменить или удалить записи?»

Есть два простых способа, и SQL не нужен ни для одного:

  • Вкладка «Админ». У каждого приложения есть панель администратора рядом с вкладкой Предпросмотр. Она показывает таблицы в виде понятных форм, деловым языком, — там можно добавлять, менять и удалять записи, а кнопка Отменить вернёт всё назад. Изменение сразу появляется в приложении и не тратит кредиты. См. Панель администратора приложения.
  • Чат. Скажите, что нужно, например: «добавь флэт уайт в меню кофе за $4,50» или «удали тестовые заказы». В режиме Чат MonstarX может ещё и заглянуть в данные и ответить на вопросы о них, ничего не меняя, — см. Режимы Создать, План и Чат.

Что MonstarX делает с базой данных во время сборки?

Заголовок раздела «Что MonstarX делает с базой данных во время сборки?»

Когда функции нужно где-то хранить информацию, MonstarX пишет миграцию — пронумерованный набор инструкций, который создаёт или меняет таблицы, например 0001_create_menu_and_orders. MonstarX применяет миграцию к базе данных и сохраняет её вместе с кодом, поэтому таблицы и код всегда соответствуют друг другу. Некоторые миграции добавляют начальные данные, например пример меню (0002_seed_recipes в примере выше).

В списке Миграции на вкладке «Облачные сервисы» по порядку показаны все выполненные миграции. 0000_monstarx_auth — собственная миграция MonstarX, она создаёт таблицы аккаунтов.

Сохранятся ли данные, если я изменю или восстановлю приложение?

Заголовок раздела «Сохранятся ли данные, если я изменю или восстановлю приложение?»

Да. Данные хранятся отдельно от кода:

  • Новые сборки сохраняют все строки. Если сборка меняет таблицу — скажем, добавляет столбец, — она делает это миграцией, которая сохраняет всё, что там уже есть.
  • Восстановление версии возвращает только прежнюю копию кода. Данные приложения останутся без изменений. См. Версии.
  • Предпросмотр и опубликованное приложение работают с одной базой данных. Заказ, который вы оформили, пока тестировали предпросмотр, есть и в рабочем приложении, и наоборот. Поэтому пример записи, добавленный во время теста, увидят и ваши клиенты.

Можно ли хранить данные в своей базе данных?

Заголовок раздела «Можно ли хранить данные в своей базе данных?»

Да. В разделе Облачные сервисыОблако в блоке Где это приложение хранит свои данные можно выбрать:

  • База данных MonstarX — вариант по умолчанию, ничего настраивать не нужно;
  • Supabase (Postgres) — ваш собственный проект Supabase. Postgres — популярная база данных, которой уже пользуются многие команды. См. Supabase;
  • Railway (Postgres) — ваша собственная база данных на Railway. См. Railway;
  • Firestore (ваш проект Firebase) — записи приложения в Firebase. См. Firebase.

MonstarX переносит таблицы, строки и аккаунты и переписывает приложение под новое место. Позже можно вернуться кнопкой Вернуть данные. Если данные хранятся в Firestore, в разделе База данных вместо таблиц показываются коллекции Firestore (только на чтение — записывает их приложение).

Можно ли изменить строку прямо в разделе «База данных»?

Нет, раздел «База данных» только читает. Меняйте записи на вкладке Админ — она работает как удобная таблица с отменой — или попросите MonstarX в чате. См. Панель администратора приложения.

Почему тестовый заказ появился в рабочем приложении?

Предпросмотр и опубликованное приложение пользуются одной базой данных, поэтому всё, что вы добавляете во время тестов, — настоящие данные. Когда закончите, удалите тестовые строки на вкладке Админ.

Восстановление старой версии удалит мои данные?

Нет. Восстановление версии заменяет только код. Все строки в базе данных остаются как есть.

Можно ли скачать свои данные?

Можно прочитать любую таблицу запросом SELECT и скопировать результат или перенести данные в свою базу Supabase или Railway Postgres, где у вас будет к ним полный доступ.

Что это за база данных?

Закрытая база данных SQL, отдельная для каждого приложения. SQL — стандартный язык баз данных, поэтому с ней может работать любой разработчик. Если вам больше нравится Postgres, перенесите данные в Supabase или Railway.

Почему я вижу сообщение, что приложение импортировано?

Для импортированного приложения MonstarX не создавал базу данных: его данные хранятся там, где их держит его собственный код. Ключи, которые оно читает, находятся в разделе Секреты.