Храните данные приложения в 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 Postgres?
Заголовок раздела «Когда стоит использовать Railway Postgres?»Выбирайте его, если вы уже что-то запускаете на Railway, хотите хранить данные приложения в своём аккаунте или работать с ними своими инструментами для баз данных. В остальных случаях проще собственная база MonstarX — её вообще не нужно настраивать. См. База данных приложения.
Приложение хранит данные только в одном месте. Переход на Railway Postgres — это перенос, а не копия.
Перед началом
Заголовок раздела «Перед началом»В Railway:
- Откройте (или создайте) проект Railway и выберите окружение — обычно production.
- Добавьте в него сервис базы данных Postgres и включите для него public networking (публичный сетевой доступ), чтобы MonstarX мог до него достучаться.
- Создайте токен аккаунта или рабочего пространства в Railway: Account Settings → Tokens. Токен проекта не может создавать сервисы, поэтому не подойдёт.
В MonstarX данные приложения должны находиться в собственной базе MonstarX. Если они в Supabase или Firestore, сначала верните их.
Как перенести данные приложения в Railway Postgres?
Заголовок раздела «Как перенести данные приложения в Railway Postgres?»-
Откройте проект, нажмите Облачные сервисы на верхней панели, а затем Облако.
-
В списке Подключения нажмите Подключить рядом с Railway — или выберите Railway (Postgres) в блоке Где это приложение хранит свои данные.
-
Заполните форму:
- Токен API аккаунта или рабочего пространства — токен из Railway;
- ID проекта — из настроек проекта Railway;
- ID окружения — из тех же настроек;
- Публичная строка подключения Postgres (необязательно) — значение
DATABASE_PUBLIC_URLвашего сервиса Postgres. Именно оно запускает перенос; оставьте поле пустым, если хотите только развернуть приложение в Railway.
-
Нажмите Подключить Railway. MonstarX проверит, что окружение относится к проекту и что в базе можно создавать таблицы.
-
В чате появится карточка Перенести данные этого приложения в Railway Postgres с числом найденных таблиц и строк. Нажмите Перенести моё приложение.
-
Карточка показывает каждый шаг — чтение данных, создание таблиц, копирование строк, проверку полноты переноса, переключение приложения на 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.
Пользователям придётся регистрироваться заново?
Нет. Аккаунты — это строки в базе данных приложения, поэтому они переносятся вместе с остальными данными и продолжают работать.