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

Храните данные приложения в Railway Postgres

КраткоПодключение Railway решает две отдельные задачи. С токеном API, ID проекта и ID окружения можно развернуть приложение в Railway. Добавьте ещё публичную строку подключения Railway Postgres — и MonstarX перенесёт туда таблицы и строки приложения, проверит их и перепишет приложение под новую базу. Кнопка «Вернуть данные» переносит данные обратно.

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

  • Хранить данные приложения в Railway Postgres — в вашей собственной базе Postgres на Railway вместо базы MonstarX. Об этом рассказывает эта страница.
  • Развернуть приложение в Railway — запускать его в вашем проекте Railway из репозитория на GitHub. См. Публикация на других хостингах.

Эти задачи не зависят друг от друга: данные могут храниться в Railway Postgres, а приложение — публиковаться в MonstarX, и наоборот.

Выбирайте его, если вы уже что-то запускаете на Railway, хотите хранить данные приложения в своём аккаунте или работать с ними своими инструментами для баз данных. В остальных случаях проще собственная база MonstarX — её вообще не нужно настраивать. См. База данных приложения.

Приложение хранит данные только в одном месте. Переход на Railway Postgres — это перенос, а не копия.

В Railway:

  1. Откройте (или создайте) проект Railway и выберите окружение — обычно production.
  2. Добавьте в него сервис базы данных Postgres и включите для него public networking (публичный сетевой доступ), чтобы MonstarX мог до него достучаться.
  3. Создайте токен аккаунта или рабочего пространства в Railway: Account Settings → Tokens. Токен проекта не может создавать сервисы, поэтому не подойдёт.

В MonstarX данные приложения должны находиться в собственной базе MonstarX. Если они в Supabase или Firestore, сначала верните их.

Как перенести данные приложения в Railway Postgres?

Заголовок раздела «Как перенести данные приложения в Railway Postgres?»
  1. Откройте проект, нажмите Облачные сервисы на верхней панели, а затем Облако.

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

  3. Заполните форму:

    • Токен API аккаунта или рабочего пространства — токен из Railway;
    • ID проекта — из настроек проекта Railway;
    • ID окружения — из тех же настроек;
    • Публичная строка подключения Postgres (необязательно) — значение DATABASE_PUBLIC_URL вашего сервиса Postgres. Именно оно запускает перенос; оставьте поле пустым, если хотите только развернуть приложение в Railway.
  4. Нажмите Подключить Railway. MonstarX проверит, что окружение относится к проекту и что в базе можно создавать таблицы.

  5. В чате появится карточка Перенести данные этого приложения в Railway Postgres с числом найденных таблиц и строк. Нажмите Перенести моё приложение.

  6. Карточка показывает каждый шаг — чтение данных, создание таблиц, копирование строк, проверку полноты переноса, переключение приложения на Railway, изменение кода приложения — и в конце сообщает: Ваше приложение теперь работает на Railway Postgres.

После этого у карточки База данных в разделе Облачные сервисыОблако появится метка На Railway.

  • Все таблицы и строки попадают в вашу базу Railway Postgres, и MonstarX сверяет их число с обеих сторон, прежде чем переключить приложение. Если числа не совпадают, перенос останавливается, а приложение остаётся как было.
  • MonstarX сохраняет свою прежнюю копию нетронутой, чтобы можно было вернуться.
  • Код приложения переписывается под Postgres в сборке, которую MonstarX запускает сам.
  • Пока идёт перенос, новые запросы ждут в очереди, а кнопка Остановить на карточке прерывает перенос.

Да. Нажмите Вернуть данные на карточке База данных в разделе Облачные сервисыОблако и подтвердите. MonstarX скопирует всё обратно в свою базу и снова перепишет код. Ваша база Railway останется как есть.

  • Токен остаётся у MonstarX. Токен API, ID проекта и ID окружения хранятся в зашифрованном виде, и MonstarX использует их только для управления Railway. В приложение они никогда не попадают.
  • Строка подключения передаётся только серверу приложения и только после переключения. В браузер она никогда не попадает.
  • Railway нельзя отключить или сменить его базу, пока приложение ею пользуется. Сначала верните данные.
  • Снятие с публикации в Railway удаляет только сервис, созданный MonstarX, и никогда — вашу базу Postgres.
  • Импортированные приложения сохраняют собственный код работы с базой: MonstarX передаёт им строку подключения как RAILWAY_DATABASE_URL, но их данные не переносит.
  • Закрытый адрес Railway не подойдёт. Чтобы достучаться до базы, MonstarX нужна публичная строка подключения.
Нужно ли разворачивать приложение в Railway, чтобы пользоваться Railway Postgres?

Нет. Это независимые задачи. Приложение может по-прежнему публиковаться в MonstarX, а его данные — храниться в Railway Postgres.

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

Значение DATABASE_PUBLIC_URL сервиса Postgres — после того как вы включите для него public networking. До адреса в частной сети MonstarX достучаться не может.

Почему мой токен не приняли?

Токены проекта Railway не могут создавать сервисы. Создайте вместо него токен аккаунта или рабочего пространства в Railway: Account Settings → Tokens.

Можно ли перейти с Supabase на Railway?

Да, в два шага: кнопкой Вернуть данные перенесите данные в базу MonstarX, а затем подключите Railway Postgres.

Пользователям придётся регистрироваться заново?

Нет. Аккаунты — это строки в базе данных приложения, поэтому они переносятся вместе с остальными данными и продолжают работать.