2011-03-02 10 views
5

Cuando creo una tabla en PostgreSQL, SQL utilizo es así:¿Hay alguna forma de exportar el esquema de PostgreSQL condensado?

CREATE TABLE domain (
    id serial, 
    domain character varying(60) NOT NULL, 
    banned boolean, 
    created timestamp NOT NULL 
); 

Sin embargo, cuando la exportación del esquema consigo en su conjunto, la versión sin comprimir con basura como quién es el propietario de la mesa y la secuencia completa . ¿Hay alguna forma de obtener una exportación sin al menos la parte del propietario?

CREATE TABLE domain (
    id integer NOT NULL, 
    domain character varying(60) NOT NULL, 
    banned boolean, 
    created timestamp without time zone NOT NULL 
); 

ALTER TABLE public.domain OWNER TO postgres; 

CREATE SEQUENCE domain_id_seq 
    START WITH 1 
    INCREMENT BY 1 
    NO MAXVALUE 
    NO MINVALUE 
    CACHE 1; 

ALTER TABLE public.domain_id_seq OWNER TO postgres; 
ALTER SEQUENCE domain_id_seq OWNED BY domain.id; 
SELECT pg_catalog.setval('domain_id_seq', 3, true); 

Lo principal es que quiero ser capaz de pasar el esquema en torno a otros (que no podría incluso estar utilizando PostgreSQL) sin tener que editar manualmente el archivo y eliminar las partes que son específicos a mi DB usuario. La mano corta también es mucho más fácil de leer.

Respuesta

4

Algo como esto le ayudará a parte del camino:

pg_dump --schema-only  \ 
     --no-owner   \ 
     --no-privileges  \ 
     --table=$TABLE_NAME \ 
     $DATABASE_NAME 

Usted todavía tiene todas las cosas SET... en la parte superior y las limitaciones, secuencias, y los índices al final.

Es posible que pueda dar masajes a la salida de

echo "\d $TABLENAME" | psql -d $DATABASE -U $USER 

en lo que quiera con un poco de secuencias de comandos.

También puede buscar en las tablas del sistema para obtener lo que desea, pero eso probablemente sería más trabajo que cortar manualmente el medio de lo que pg_dump tiene que decir.

+0

Gracias, esto probablemente tendrá que hacer. Tal vez, puedo construir un script bash que ejecute la exportación, luego filtra el contenido del SQL ... – Xeoncross

Cuestiones relacionadas