Problemi con il ripristino: "comando non valido \restrict"

Sto avendo problemi a eseguire un ripristino da “Discourse 3.5.0.beta9-dev - 04dbc622ab1e0197d16703ba47cf005ec93697ee” all’attuale (6f06709643fa5e2253606c46f79d089ca3393ac9)

[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /home/pfaffman/src/discourse-repos/discourse/tmp/restores/default/2025-10-28-201139 exists...
Downloading archive to tmp directory...
Extracting dump file...
Validating metadata...
  Current version: 20251024020353
  Restored version: 20250724012518
Enabling readonly mode...
Pausing sidekiq...
Waiting up to 60 seconds for Sidekiq to finish running jobs...
Creating missing functions in the discourse_functions schema...
Restoring dump file... (this may take a while)
invalid command \restrict
EXCEPTION: psql failed: invalid command \restrict

Se rimuovo questi comandi printf da database_restorer, funziona:

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

Sembra questo commit.

Sulla versione da cui è stato effettuato il backup (un container docker cdck) ho questo:

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

e questo è dove sto cercando di ripristinare (sito di sviluppo con pg15 sul bare metal):

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

Non capisco cosa stia cercando di fare questo codice, quindi sono solo confuso.

Devi essere su PG 15.14 e devi assicurarti che tutte le tue istanze siano su quella versione. Questo corregge un grave problema di sicurezza.

3 Mi Piace

Ah. Questa è una spiegazione molto semplice.

Grazie. Mi ci metterò subito.

2 Mi Piace