Re: [INTERFACES] postgresql 7.3 versus 7.2 - Mailing list pgsql-hackers

From ."@babolo.ru
Subject Re: [INTERFACES] postgresql 7.3 versus 7.2
Date
Msg-id 1045118603.377594.739.nullmailer@cicuta.babolo.ru
Whole thread Raw
List pgsql-hackers
> Is there any way to adjust dumps from postgresql 7.3 for use by
> version 7.2 and vice versa ?
> 
> Or is there a way to transport a full database via csv or in any other
> kind to 7.2 and vice versa ?
> 
> We are running a couple of servers/mirrors at various locations in the
> world, handling data based on postgresql, and now we have trouble to
> transport data from and to sites with different versions.
> 
> (E.g. http://genealogy.math.ndsu.nodak.edu/
>       http://genealogy.mathematik.uni-bielefeld.de/ )
> 
> Some have upgraded and others cannot immediately follow, since an
> upgrade from 7.2 to 7.3 seems to require an upgrade of php4 and maybe
> even of apache, which takes time etc.
> 
> So it would be helpful to have an easy tool to convert between data
> for both versions.
> 
> Any help or recommendation is very much appreciated!
I live with PostgreSQL from 6.5 and for
independance every my application write
in such a manner:database description is written using m4 macros.
short example (<qb><qe> - quote open and quote close - they are unprintable):
CREATE_SECTION<qb><qe>dnl

CREATE_TABLE(istat_d, rs, normal)    ( date   date NOT NULL    , wclass int NOT NULL    , count  int8 NOT NULL    )
INHERITS(ifaces)
;
TUNE_SECTION<qb><qe>dnl

CREATE UNIQUE INDEX istat_d_idx ON istat_d(router, iface, date, wclass);
ALTER TABLE istat_d ADD FOREIGN KEY(router) REFERENCES router;
ALTER TABLE istat_d ADD FOREIGN KEY(router, iface) REFERENCES iface;

COMMENT ON TABLE istat_d       IS '????? ? ???????';
COMMENT ON COLUMN istat_d.date   IS '????? ??????';

END_SECTION<qb><qe>dnl

m4 creates different files:
for shema creation:
CREATE TABLE istat_d    ( date   date NOT NULL    , wclass int NOT NULL    , count  int8 NOT NULL    )
INHERITS(ifaces)
;

for content restore (:1 - directory):
\set istat_d '\\copy istat_d FROM \'' :1 '/istat_d\''
:istat_d

for last pass (I call it 'tune'):
GRANT SELECT ON istat_d TO ispdb;
GRANT INSERT ON istat_d TO ispdb;
GRANT SELECT ON istat_d TO GROUP ispdbuser;

CREATE UNIQUE INDEX istat_d_idx ON istat_d(router, iface, date, wclass);
ALTER TABLE istat_d ADD FOREIGN KEY(router) REFERENCES router;
ALTER TABLE istat_d ADD FOREIGN KEY(router, iface) REFERENCES iface;

COMMENT ON TABLE istat_d       IS '????? ? ???????';
COMMENT ON COLUMN istat_d.date   IS '????? ??????';

for content dump:
\set istat_d '\\copy istat_d TO \'' :1 '/istat_d\''
:istat_d

for shema deletion:
DROP TABLE istat_d;

for empty database initialisation - void in this example.

'?' in example are symbols of my language.

So every database replication is:- content dump (not PostgreSQL dump)- shema creation- content restore- tune pass

This unlock me from PostgreSQL version and ease me
to upgrade application version (with possible
'up' pass in addition)



pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: java access to the backend (non jdbc)?
Next
From: Ulf Rehmann
Date:
Subject: Re: [INTERFACES] postgresql 7.3 versus 7.2