Actualización
Actualizar una aplicación existente
Sección titulada «Actualizar una aplicación existente»Cinco saltos, de los más recientes a los más antiguos. Empieza en el que esté por encima de tu versión actual y avanza hacia abajo; o, si vienes de la versión 0.12, empieza desde abajo y avanza hacia arriba.
| Estás en | Leer | Qué efectos tiene |
|---|---|---|
| 0.18 – 0.20 | 0.18 → 0.21 | context.client.data deja de compilar en un callback de colección —consulta a través de context.data— y selectedEntities da paso a una selección que puede representar filas que nadie ha cargado. 0.19 y 0.20 no declaran cambios incompatibles, por lo que este es un solo salto desde 0.18. |
| 0.17 | 0.17 → 0.18 | Once cambios incompatibles, la mayoría son errores de compilación en lugar de cambios silenciosos de comportamiento. rebase.data desaparece en tiempo de ejecución, los rangos de dependencias peer se restringen a intercalaciones (^), y la versión mínima de Node pasa a 22.22.0. |
| 0.14 – 0.16 | 0.14 → 0.17 | Los paquetes de administración se renombran, los recursos se declaran en lugar de configurarse y un bundle compilado antes no arrancará en un entorno de ejecución actual. 0.15 y 0.16 no rompen nada, por lo que este es un solo salto desde 0.14. |
| 0.13 | 0.13 → 0.14 | Cada clave en tránsito usa camelCase, y el inicio de sesión anónimo pasa a ser opcional (opt-in). |
| 0.12 | 0.12 → 0.13 | El salto más grande, y el único que cambia quién puede leer tus datos. Elimina el esquema auth, renombra paquetes, cambia el significado de id, descarta CJS, migra el panel de administración a react-router 8 y corrige tres formas en las que se podía conceder acceso no solicitado. |
Las secciones de cada página están en el orden en que debes aplicarlas, y cada una indica el síntoma que de otro modo intentarías depurar por el extremo equivocado.
Luego, independientemente del salto que hayas dado:
- La lista de verificación de actualización a continuación: los greps y comandos que vale la pena ejecutar después, en un solo bloque.
Lista de verificación de actualización
Sección titulada «Lista de verificación de actualización»[ ] grep for authenticated() and (auth|rebase).uid() IS NOT NULL in config/collections/[ ] decide the intent of each rule; rewrite the ones that meant "public"[ ] replace not(authenticated()) with serverContext()[ ] if realtime.requireAuth was true with an AuthAdapter, treat the socket as having been open — verify RLS on every subscribable collection (section 2)[ ] SELECT ... FROM pg_policies — record the qual of every policy BEFORE[ ] update package names and imports[ ] grep for rebase.data — it is now rebase.dataAsAdmin (section 8)[ ] grep for the other ten removed deprecated exports (section 8)[ ] drop react-router-dom; import RouterProvider from "react-router/dom"[ ] check node >= 22.22.0 and react >= 19.2.7 (react-router 8 requires both)[ ] move defaultSecurityRules into config/collections/index.ts[ ] grep for .userId[ ] grep for row.id on tables not keyed on id[ ] run db push[ ] run rebase doctor --policies — expect no Insecure or Orphaned entries[ ] SELECT ... FROM pg_policies again — confirm every intended change landed[ ] exercise the app signed OUT, in a private window — watch the websocket too
--- 0.13 → 0.14 (part 2) ---[ ] re-run rebase generate-sdk, then build — the compiler finds row.author_id[ ] grep for snake_case where/orderBy keys; a stale one is a 400, not a warning[ ] grep for raw fetch consumers reading row.<something>_id — these read undefined and raise nothing[ ] if the project was introspected, re-run rebase schema introspect[ ] decide anonymous sign-in: set auth.allowAnonymous: true, or confirm you never used it (grep for signInAnonymously)[ ] drop @rebasepro/client-postgres from package.json
--- 0.14 → 0.17 (part 3) ---[ ] rename @rebasepro/admin → @rebasepro/cms and admin-types → cms-types, and RebaseAdmin → RebaseCMS[ ] move dataSources / storageSources out of the backend config into rebase.json and config/, then `rebase build` — an old bundle will not boot[ ] grep collections for admin.titleProperty; it is refused at boot now[ ] grep crons for ctx.client and for `userId` as an identity key[ ] rename --legacy to --workspace wherever build/start is scripted[ ] if you implement EmailService yourself, `send` must return a resultrebase doctor --policies es el que debes conectar a CI: finaliza con código distinto de cero si una política aún contiene la tautología permisiva o si una política anterior fue reemplazada por un push previo. Las lecturas de pg_policies antes y después siguen valiendo la pena el minuto invertido: te muestran las expresiones en sí mismas, que es la única forma de detectar una política que falla en modo abierto (fail-open) escrita con una sintaxis que el detector no reconoce. Ni los paquetes ni el sistema de tipos te lo advertirán: el cambio reside en la base de datos, y db push es lo único que lo aplica allí.
Relacionado
Sección titulada «Relacionado»- Registro de cambios — las notas de versión que resume cada una de estas secciones
- Compatibilidad — los seis contratos y cuáles puede romper una versión
- Comandos de la CLI —
rebase doctory los comandos que ejecutan las listas de verificación