Vous n'êtes pas identifié(e).
Bonjour,
j'utilise une base de données PostgreSQL 10 avec mon application Django.
J'ai mis en place une sauvegarde automatique à l'aide de l'application tierce Django dbbackup qui génère un fichier .psql ci-dessous (en utilisant pg_dump en principe)
J'essaie donc de restaurer ma base depuis pgAdmin 4 mais la restauration échoue sans que j'ai plus d'info sur la raison.
J'ai créé un base de données db_backup et depuis pgAdmin 4, je sélectionne ma base et l'option restore
Je sélectionne mon fichier backup.psql
J'ai simplement une fenêtre qui s'affiche indiquant:
Restoring backup on server 'Postgres Enterprise Managager (localhost:5433)'...
Running command:
C:\path\to\pg_restore.exe --host "localhost" --port "5433" --username "postgres" --no-password --dbname "db_backup" --verbose "D:\\path\to\my\files\backup.psql"
Failed (exit code: 1)
Ma base est bien sur le port 5433
--
-- PostgreSQL database dump
--
-- Dumped from database version 10.10
-- Dumped by pg_dump version 12.5
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
ALTER TABLE ONLY public.parameters_historicalthesaurusoption DROP CONSTRAINT parameters_historica_history_user_id_f34984e9_fk_auth_user;
...
--
-- Name: Comments; Type: TABLE; Schema: public; Owner: user_dev
--
CREATE TABLE public."Comments" (
deleted timestamp with time zone,
comment_id integer NOT NULL,
title character varying(50),
comment character varying(250),
rate integer,
"like" integer,
dislike integer,
created_at timestamp with time zone NOT NULL
);
Hors ligne
Votre instance est installée localement ?
Quoi qu'il en soit, pg_restore devrait vous fournir plus d'information sur l'erreur. Si pgAdmin ne vous affiche pas le détail, essayez de lancer la commande en question manuellement.
Julien.
https://rjuju.github.io/
En ligne
oui, localement
j'ai testé en faisant une sauvegarde et en restaurant ma base db_dev dans db_dev_backup depuis pgAdmin et çà fonctionne
j'ai l'impression que c'est le fichier créé via mon appli qui n'est pas conforme...
C:\Program Files\PostgreSQL\10\bin\pg_restore.exe --host "localhost" --port "5433" --username "postgres" --no-password --dbname "db_dev_backup" --verbose "D:\\path\to\db_backup.psql"
j'ouvre donc une invite au niveau C:\Program Files\PostgreSQL\10\bin et je tape la commande :
pg_restore --host "localhost" --port "5433" --username "postgres" --no-password --dbname "db_dev_backup" --verbose "D:\\path\to\db_backup.psql"
j'obtiens le message pg_restore: [archiveur] Le fichier en entrée semble être une sauvegarde au format texte. Merci d'utiliser psql.
Dernière modification par LECARROU (05/01/2021 11:23:44)
Hors ligne
Effectivement, il faut soit modifier votre application pour ajouter une option telle que "-Fc" (format custom) lors de la sauvegarde, soit restaurer avec psql.
Julien.
https://rjuju.github.io/
En ligne
j'ouvre SQL Shell (psql) et me connecte à la base de données db_dev_backup avec l'utilisateur postgres
\i 'D:\\path\to\my\file\db_backup.psql';
Dernière modification par LECARROU (05/01/2021 11:55:02)
Hors ligne