Vous n'êtes pas identifié(e).
Bonjour,
Je découvre Postgresql sur windows et j'ai l'impression que la commande pg_dumpall n'a pas le même comportement que sur Linux ?
Quand je lance la commande "pg_dumpall -U postgres -l postgres -cvf C:\bases\postgresql\ig9d\var\export\export_full_ig9d.sql" sur windows, j'ai en en-tête de mon dump ça :
--
-- PostgreSQL database cluster dump
--
-- Started on 2010-06-24 17:11:30
\connect postgres
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET escape_string_warning = 'off';
--
-- Roles
--
DROP ROLE postgres;
CREATE ROLE postgres;
ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN PASSWORD 'md52a035251f5d8cdd905109be57af5ec35';
DROP ROLE spelgd;
CREATE ROLE spelgd;
ALTER ROLE spelgd WITH SUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN PASSWORD 'md5417c7d60a436380458eaff7282322b42';
--
-- Database creation
--
REVOKE ALL ON DATABASE template1 FROM PUBLIC;
REVOKE ALL ON DATABASE template1 FROM postgres;
GRANT ALL ON DATABASE template1 TO postgres;
GRANT CONNECT ON DATABASE template1 TO PUBLIC;
\connect postgres
--
-- PostgreSQL database dump
--
-- Started on 2010-06-24 17:11:30
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;
SET search_path = public, pg_catalog;
SET default_tablespace = '';
SET default_with_oids = false;
--
-- TOC entry 1481 (class 1259 OID 16410)
-- Dependencies: 3
-- Name: customer; Type: TABLE; Schema: public; Owner: spelgd; Tablespace:
--
CREATE TABLE customer (
c_w_id integer NOT NULL,
c_d_id integer NOT NULL,
c_id integer NOT NULL,
etc...
Pas d'ordre drop database donc ?
Alors que sur Linux, j'ai ça avec la même commande :
--
-- PostgreSQL database cluster dump
--
-- Started on 2010-05-27 17:26:19 CEST
\connect postgres
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET escape_string_warning = off;
--
-- Drop databases
--
DROP DATABASE ig9d;
--
-- Drop roles
--
DROP ROLE exppgs;
DROP ROLE ig9d;
DROP ROLE patrol;
DROP ROLE spelgd;
--
-- Roles
--
CREATE ROLE exppgs;
ALTER ROLE exppgs WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN PASSWORD 'md5d92946b75ef33e2db6e72661d66c9227';
CREATE ROLE ig9d;
ALTER ROLE ig9d WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN PASSWORD 'md5ba60b153e064f49613c0d2d3ad2efb6d';
CREATE ROLE patrol;
ALTER ROLE patrol WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN;
CREATE ROLE spelgd;
ALTER ROLE spelgd WITH SUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN PASSWORD 'md5417c7d60a436380458eaff7282322b42';
--
-- Database creation
--
CREATE DATABASE ig9d WITH TEMPLATE = template0 OWNER = ig9d;
REVOKE ALL ON DATABASE template1 FROM PUBLIC;
REVOKE ALL ON DATABASE template1 FROM exppgs;
GRANT ALL ON DATABASE template1 TO exppgs;
GRANT CONNECT ON DATABASE template1 TO PUBLIC;
\connect ig9d
--
-- PostgreSQL database dump
--
-- Started on 2010-05-27 17:26:19 CEST
SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;
--
-- TOC entry 9 (class 2615 OID 26321)
-- Name: audit; Type: SCHEMA; Schema: -; Owner: exppgs
--
CREATE SCHEMA audit;
ALTER SCHEMA audit OWNER TO exppgs;
--
-- TOC entry 8 (class 2615 OID 18015)
-- Name: audit2; Type: SCHEMA; Schema: -; Owner: spelgd
--
CREATE SCHEMA audit2;
ALTER SCHEMA audit2 OWNER TO spelgd;
--
-- TOC entry 6 (class 2615 OID 16472)
-- Name: ig9d; Type: SCHEMA; Schema: -; Owner: ig9d
--
CREATE SCHEMA ig9d;
ALTER SCHEMA ig9d OWNER TO ig9d;
--
-- TOC entry 453 (class 2612 OID 16475)
-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: exppgs
--
CREATE PROCEDURAL LANGUAGE plpgsql;
etc ...
Bref beaucoup plus de chose avec la même commande.
Est ce que c'est normale ?
Merci d'avance
Hors ligne
Je viens de vérifier, avec Postgresql 8.4, sous Windows XP, j'ai bien un drop database, avec exactement la même commande. Il doit y avoir une autre différence. Par ailleurs, le code qui s'exécute est bien le même sous Windows ou Linux, il n'y a pas de différence.
Marc.
Hors ligne
Bonjour, merci pour ta réponse.
Je viens de refaire un test avec non pas la base "postgres" mais une base "ig9d" et toutes les infos drop database etc sont bien présente dans mon dump.
Peut-être était ce lié au fait que j'utilisais la base par défaut "postgres" ?
Bref, ne pas utiliser la base "postgres" par défaut est la solution pour moi.
Encore merci
Hors ligne
La base postgres n'est jamais droppée, vu qu'elle fait partie des bases par défaut.
Par ailleurs, il vaut mieux s'abstenir de l'utiliser pour de la production, il vaut mieux déclarer une nouvelle base à cet usage.
Marc.
Hors ligne
Tout s'explique ...
Merci pour l'info.
Hors ligne