Saltar al contenido

Migrar desde Railway ​

Un proyecto de Railway encaja muy bien en un proyecto de Zenavo: los servicios, la red privada, las variables compartidas y los volúmenes tienen equivalente.

Equivalencias entre Railway y Zenavo ​

RailwayZenavo
Proyecto y entornoUn proyecto en un servidor; otro entorno es un proyecto clonado
Servicio desde GitHubUn servicio desde GitHub, que se vuelve a desplegar con cada push
Compilación con Nixpacks o Railpackzbpack, o tu Dockerfile
Comando de arranque, ruta de healthcheck (railway.json)Comando de arranque y una comprobación de salud HTTP
Variables de referencia ${{Postgres.DATABASE_URL}}Variables compartidas, como ${POSTGRESQL_CONNECTION_STRING} (Variables de entorno)
<service>.railway.internal<hostname>.zenavo.internal (Red privada)
VolúmenesVolúmenes
Watch pathsWatch paths
RéplicasRéplicas, en un servidor
Programación cronAún no hay tareas programadas: ejecuta un servicio worker con un planificador en la aplicación

1. Vuelve a crear los servicios ​

  1. Añade un servidor y crea un proyecto.
  2. Añade primero las bases de datos (Bases de datos) y luego cada servicio de aplicación desde Add Service → GitHub, con el mismo directorio raíz.
  3. Copia el comando de arranque y la ruta de healthcheck de cada servicio desde los ajustes de Railway o railway.json a los Settings del servicio.

2. Copia las variables ​

El Raw Editor de las Variables de un servicio en Railway las muestra como líneas KEY=value; pégalas en Variable → Edit Raw Variables. Sustituye las variables de referencia por las compartidas de Zenavo: ${{Postgres.DATABASE_URL}} pasa a ser ${POSTGRESQL_CONNECTION_STRING}, y ${{api.RAILWAY_PRIVATE_DOMAIN}} pasa a ser api.zenavo.internal.

3. Traslada los datos ​

Para PostgreSQL, vuelca en SQL plano a través de la URL pública de la base de datos (DATABASE_PUBLIC_URL en Railway), con la misma versión principal en Zenavo:

sh
pg_dump --no-owner --no-acl "$DATABASE_PUBLIC_URL" | gzip > railway.sql.gz

Súbelo en la pestaña Backup & Restore de la nueva base de datos y restáuralo en la base de datos vacía (Subir una copia de seguridad). Para MySQL, usa mysqldump de la misma forma.

Para un volumen, saca sus archivos (por ejemplo con tar desde un shell en el servicio de Railway) y súbelos con la tarjeta Files del servicio, o restaura un .tar sin comprimir en un volumen vacío (Copia de seguridad y restauración).

4. Cambia el dominio ​

Asocia cada dominio en Networking y sustituye el CNAME de Railway por un registro A a la dirección IP del servidor (Dominios y HTTPS).

Sin relación con Zeabur.