База данных приложения
КраткоУ каждого приложения, которое создаёт MonstarX, есть своя закрытая база данных — она появляется при первой сборке. В разделе «Облачные сервисы → База данных» видны все таблицы, их строки и миграции, а ещё там можно выполнять SQL-запросы только на чтение. Чтобы добавить или изменить записи, откройте вкладку «Админ» или попросите в чате. Предпросмотр и опубликованное приложение работают с одними и теми же данными, а восстановление версии их не трогает.
База данных — это место, где приложение хранит информацию: меню кофейни, заказы покупателей, опубликованные рецепты, аккаунты, через которые входят пользователи. У каждого приложения в MonstarX есть своя закрытая база данных, которая создаётся при первой сборке. Другие приложения не могут её прочитать.
Проектировать её вам не придётся. Когда вы просите функцию, которой нужно что-то запоминать, MonstarX сам добавляет нужные таблицы и пишет код, который читает и записывает в них данные.
Где посмотреть данные приложения?
Заголовок раздела «Где посмотреть данные приложения?»-
Откройте проект и нажмите Облачные сервисы на верхней панели.
-
Нажмите База данных. Слева появится список Таблицы с числом строк в каждой.
-
Нажмите на таблицу, чтобы увидеть её строки. MonstarX показывает первые 50.
В блоке над списком указано, где находится база данных и как она называется. Под таблицами в списке Миграции собраны все изменения, которые до сих пор вносились в базу (о них ниже). Чтобы пересчитать строки после того, как приложением попользовались, нажмите стрелку обновления рядом с Таблицы.
Какие таблицы есть с самого начала?
Заголовок раздела «Какие таблицы есть с самого начала?»Четыре таблицы есть в любом приложении ещё до того, как вы что-то попросите: user, session, account и verification. В них хранятся люди, которые зарегистрировались в приложении, и их входы. См. Аккаунты пользователей. Все остальные таблицы MonstarX создаёт специально для вашего приложения — например, menu_items или recipes.
Можно ли выполнять свои SQL-запросы?
Заголовок раздела «Можно ли выполнять свои SQL-запросы?»Да, чтобы что-то посмотреть. 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 не создавал базу данных: его данные хранятся там, где их держит его собственный код. Ключи, которые оно читает, находятся в разделе Секреты.