Re: PITR on Win32 - Archive and Restore
От | Bruce Momjian |
---|---|
Тема | Re: PITR on Win32 - Archive and Restore |
Дата | |
Msg-id | 200408110219.i7B2JmU09798@candle.pha.pa.us обсуждение исходный текст |
Ответы |
Re: PITR on Win32 - Archive and Restore
|
Список | pgsql-hackers-win32 |
OK, next question. Why does this work when compiled in MinGW and run from CMD.EXE: # cat x.c #include <stdio.h> main() { system("copy \"c:/msys/1.0/home/bruce momjian/a b\" \"c:/msys/1.0/home/bruce momjian/c d\""); } # gcc -o x x.c # ./x 1 file(s) copied. C:\msys\1.0\home\Bruce Momjian>x 1 file(s) copied. The path has forward slashes and spaces. --------------------------------------------------------------------------- markir@coretech.co.nz wrote: > Funny thing is, now that the "%p" is silently using '\', the "target" path can > use '/': > > e.g : > > archive_command = 'copy "%p" "c:/databases/pgarchive/%f"' > > *now* works fine. The next interesting question will be "can I use '/' in the > restore_command too?". I will have a muddle around with it. > > regards > > Mark > > Quoting markir@coretech.co.nz: > > > I agree, the approach seems quite nice. > > > > I gave the lastest cvs a go - which is probably cvs as of about 2 hours ago, > > as > > a mingw build takes 55 minutes on this machine (compare to 6 minutes when > > booted into Freebsd... ah well..) > > > > > > Initially tried : > > > > archive_command = 'copy "%p" "c:\databases\pgarchive\%f"' > > > > But saw errors in the log about "c:databasespgarchive00000..." > > > > Looks like '\' needs to be escaped, confirmed this with : > > > > > > archive_command = 'copy "%p" "c:\\databases\\pgarchive\\%f"' > > > > Which worked fine. However, it would be nice if the '\' inside the '"' were > > 'auto-escaped' somehow, as I suspect Mr 'used-windows-all-my-life' will find > > the current behaviour counter-intuitive. > > > > Otherwise looks good > > > > Mark > > > > > > > > Quoting Andrew Dunstan <andrew@dunslane.net>: > > > > > Tom Lane said: > > > > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > > >> I have gotten confused by this. Does COPY work with quoted paths only > > > >> if we use forward slashes, or was this fix just for the slash issue > > > >> and not spaces? > > > > > > > > This only fixes the slash issue. If your database path includes spaces > > > > you'll still need to put quotes in the archive_command, but it > > > > shouldn't be any worse than > > > > archive_command = 'copy "%p" "c:\someplace\%f"' > > > > > > > > I'd appreciate confirmation though from some win32 users that the above > > > > indeed works. > > > > > > > > > > That's what my experimentation showed, although I worked with a tiny test.c > > > file rather than the archive command. I think this is the right solution - > > > the user should put the quotes in, not postgres. > > > > > > cheers > > > > > > andrew > > > > > > > > > > > > > > > ---------------------------(end of broadcast)--------------------------- > > > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org > > > > > > > > > > > > > > > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
В списке pgsql-hackers-win32 по дате отправления: