PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment mettre à niveau le pg_restore dans l'image docker postgres 10.3 à 10.5

Si je vous comprends bien, vous souhaitez restaurer un vidage de format personnalisé pris avec 10.5 dans une base de données 10.3.

Cela ne sera pas possible si le format d'archive a changé entre 10.3 et 10.5.

Comme solution de contournement, vous pouvez utiliser un vidage au "format brut" (option --format=plain ) qui n'a pas de "version d'archive". Mais tout problème pendant la restauration vous appartient, car la rétrogradation de PostgreSQL n'est pas prise en charge.

Vous devez toujours utiliser la même version pour le développement et la production, et vous devez toujours utiliser la dernière version mineure (actuellement 10.13). Tout le reste demande des ennuis.

  1. sauvegarder en texte brut comme ceci :avertissement ! le dossier sera énorme. Environ 17 fois plus que le format personnalisé standard. Mes 90 Mo typiques sont maintenant de 1,75 Go
  2. copiez le fichier de sauvegarde dans le conteneur postgres docker cp ~/path/to/dump/in-host-system/2020-07-08-1.dump <name_of_postgres_container>:/backups
  3. accédez au bash de votre conteneur postgres docker exec -it <name_of_postgres_container> bash
  4. dans le bash du conteneur postgres :psql -U username -d dbname < backups/2020-07-08-1.dump

Cela fonctionnera