Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica los cambios de entidad Rayfin a la base de datos usando rayfin up o rayfin up db apply, y verifica que el esquema ha llegado al servidor.
Editar una clase en rayfin/data/ no cambia por sí mismo la base de datos desplegada. Rayfin lee tus entidades y genera la configuración del Data API Builder (DAB) solo cuando aplicas explícitamente los cambios.
Uso rayfin up para actualizaciones de aplicaciones
Ejecuta npx rayfin up cuando quieras desplegar tus últimos cambios de entidad en una app Fabric:
npx rayfin up
Este comando:
- Sincroniza la configuración de ejecución.
- Aplica el esquema de la base de datos generado por los decoradores en
rayfin/data/. - Construye y despliega contenido estático cuando
staticHostingestá habilitado.
Ejecuta el comando después de cada cambio en un archivo en rayfin/data/. Después del primer despliegue, las ejecuciones posteriores actualizan el mismo despliegue en lugar de crear uno nuevo.
Aplica solo cambios en el esquema de la base de datos
Úsalo npx rayfin up db apply cuando quieras aplicar el esquema de la base de datos sin sincronizar configuraciones de ejecución ni desplegar contenido estático:
npx rayfin up db apply
Este subcomando avanzado es útil cuando ejecutas el frontend con npm run dev, el backend ya está desplegado y quieres iterar sobre el esquema de forma independiente.
Si un cambio puede causar pérdida de datos, como eliminar una columna o renombrar una tabla, la CLI bloquea la operación y describe el posible impacto. Después de revisar las operaciones y aceptar la pérdida de datos, aplica el cambio con --force:
npx rayfin up db apply --force
Caution
La --force opción puede causar una pérdida permanente de datos. Úsalo solo después de revisar cada operación reportada por la CLI.
Verifica el esquema desplegado
Warning
Un comando rayfin up o rayfin up db apply ejecutado correctamente no garantiza que tu frontend pueda consultar inmediatamente una entidad nueva o modificada. Verifica que el despliegue funcione correctamente antes de probar la entidad.
Después de cualquier cambio en rayfin/data/, revisa el despliegue:
npx rayfin up status
Si una entidad nueva o modificada sigue devolviendo errores GraphQL una vez que el despliegue se recupera, aplica el esquema explícitamente y luego prueba la entidad de nuevo:
npx rayfin up db apply
Añade --force solo si la CLI informa de un cambio potencialmente destructivo y aceptas la pérdida de datos.
Para el estado de despliegue legible por máquina, utiliza la salida JSON:
npx rayfin up status --json
Puedes usar la respuesta JSON en un script que espera un despliegue saludable antes de realizar más comprobaciones.
Sigue un flujo de trabajo típico de esquemas
# 1. Edit an entity, such as rayfin/data/Todo.ts.
# 2. Apply the application changes.
npx rayfin up
# 3. Verify that the deployment is healthy.
npx rayfin up status
# 4. If the changed entity still fails, apply the schema explicitly.
npx rayfin up db apply
Si el paso 4 informa de una operación potencialmente destructiva, revísalo antes de volver a ejecutar el comando con --force.
Cambios en el esquema de resolución de problemas
GraphQL devuelve un error interno del servidor
Revisa cada @text() campo de la entidad afectada para ver si falta algún max valor. Con Microsoft SQL Server, @text() sin max genera una columna NVARCHAR(MAX), lo que puede impedir la generación de esquemas de GraphQL.
Añade longitudes máximas explícitas y luego aplica el esquema:
@text({ max: 200 })
title!: string;
npx rayfin up db apply --force
Revisa las operaciones reportadas antes de usar --force.
El CLI informa de un cambio potencialmente destructivo
Revisa las operaciones listadas, incluyendo columnas eliminadas, tipos reducidos y tablas renombradas. Reejecuta el comando --force solo después de confirmar que la pérdida de datos es aceptable.
La aplicación del esquema falla
Ejecuta npx rayfin up status, y espera a que los servicios estén operativos antes de volver a intentar aplicar el esquema.
El servicio de datos no tiene dialecto
Cuando services.data.enabled es true, configura dialect: mssql en rayfin/rayfin.yml.
services:
data:
enabled: true
dialect: mssql
Usa un prompt de IA
Copia el siguiente prompt en GitHub Copilot u otro agente de programación que tenga acceso a tu proyecto y terminal:
I just added a new field to an entity in my Rayfin project's rayfin/data/ folder. Run
`npx rayfin up` to apply the change, then run `npx rayfin up status` to confirm the
deployment is healthy. If querying the changed entity still fails after that, run
`npx rayfin up db apply` and check again. Review any potentially destructive operations with me before using `--force`.