On Thu, Jan 9, 2014 at 10:29 PM, Gabriele Bartolini < gabriele.bartol...@2ndquadrant.it> wrote:
> Hi Steeve, > > Il 09/01/14 22:10, Steeve Lennmark ha scritto: > > > > That's a much better solution, I attached a patch with the updated code. > > > > # SELECT oid, pg_tablespace_location(oid) FROM pg_tablespace; > > [...] > > 16388 | /tmp/tblspc1 > > 16389 | /tmp/tblspc2 > > I'd suggest, a similar solution to the one we have adopted in Barman (if > you don't know it: www.pgbarman.org), that is: > > --tablespace NAME:LOCATION [--tablespace NAME:location] > > I prefer this over the location on the master as this might change over > time (at least more frequently than the tablespace name) and over servers. I'm a barman user myself so that was actually my initial thought. If there aren't some kind of hidden internal that I've missed I don't see a way to convert an OID (only have OID and path at this stage) to a tablespace name. This solution, even though not optimal, is a lot better than my initial one where I used the OID directly. > > $ pg_basebackup -Xs -D backup/data -T /tmp/tblspc1:$(pwd)/backup/t1 -T > > /tmp/tblspc2:$(pwd)/backup/t2 > > With the above example, it would become: > > $ pg_basebackup -Xs -D backup/data -T tblspc1:$(pwd)/backup/t1 -T > tblspc2:$(pwd)/backup/t2 > Yeah, that would be my favourite solution. Regards, Steeve -- Steeve Lennmark