Problema con la restauración: "comando inválido \\restrict"

Tengo problemas para restaurar desde “Discourse 3.5.0.beta9-dev - 04dbc622ab1e0197d16703ba47cf005ec93697ee” a la versión actual (6f06709643fa5e2253606c46f79d089ca3393ac9)

[INICIADO]
¡'system' ha iniciado la restauración!
Marcando la restauración como en ejecución...
Asegurándose de que /home/pfaffman/src/discourse-repos/discourse/tmp/restores/default/2025-10-28-201139 existe...
Descargando el archivo a la carpeta tmp...
Extrayendo el archivo de volcado...
Validando metadatos...
  Versión actual: 20251024020353
  Versión restaurada: 20250724012518
Habilitando el modo de solo lectura...
Pausando sidekiq...
Esperando hasta 60 segundos para que Sidekiq termine de ejecutar trabajos...
Creando funciones faltantes en el esquema discourse_functions...
Restaurando el archivo de volcado... (esto puede tardar un tiempo)
comando inválido \restrict
EXCEPCIÓN: psql falló: comando inválido \restrict

Si elimino estos comandos printf de database_restorer, funciona:

      <<~CMD
        (
          printf '%s\n' "\\\restrict #{nonce}"
          #{sed_command}
          printf '%s\n' "\\\unrestrict #{nonce}"
        ) | #{self.class.psql_command} 2>&1
      CMD

Parece que este commit.

En la versión donde se realizó la copia de seguridad (un contenedor docker de cdck) tengo esto:

PostgreSQL 15.13 (Debian 15.13-1.pgdg120+1) on x86_64-pc-linux-gnu, compilado por gcc (Debian 12.2.0-14) 12.2.0, 64-bit

y aquí es donde estoy intentando restaurar (sitio de desarrollo ejecutando pg15 en el metal desnudo):

PostgreSQL 15.13 (Ubuntu 15.13-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compilado por gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit

No entiendo qué intenta hacer este código, así que estoy confundido.

Necesitas estar en la versión 15.14 de PostgreSQL y asegurarte de que todas tus instancias estén en esa versión. Esto soluciona un importante problema de seguridad.

3 Me gusta

Ajá. Esa es una explicación muy sencilla.

Gracias. Me pondré a ello.

2 Me gusta