On Sat, 2014-02-08 at 18:28 +0100, Guillaume Lelarge wrote: > On Fri, 2014-02-07 at 14:32 +0000, Rob Richardson wrote: > > Greetings! > > > > I have been curious for several years: Why doesn't PGAdmin's backup screen > > allow me to save data only or schema only in custom format? > > > > > > I am trying to test a long-running application that uses a PostgreSQL > > database. I occasionally need to change or add a database function or make > > some other change that does not affect table structures. I also need to > > save backups of the database at various times as the application runs so I > > can restart the application from that point. In the past, if I changed a > > database function, I needed to open all of the database copies I've been > > using and apply the change to each one individually. > > > > It occurred to me recently that if I save the data and schema separately, > > then I can create a database, load the latest version of the schema (with > > the changed function) into it, and then choose which state of data to load > > (beginning of the application, middle, near the end, or whatever). > > > > With PGAdmin's backup screen, I only get a choice of data only or schema > > only if I select a plain format for my backup file. But then, if I use > > psql to restore my data, all triggers are active, and the effects of the > > triggers mean that the restored data is not the same as the data that was > > backed up. psql does not have a disable triggers options. On the other > > hand, pg_restore does have an option to disable triggers, ensuring that the > > restored data is identical to the saved data. But pg_restore only works on > > custom format files. PGAdmin's backup screen is merely a GUI wrapper > > around the pg_dump program, and with pg_dump there's no problem saving > > schema only or data only into custom-format files. So why doesn't PGAdmin > > let us do it? > > > > To be honest, I have no idea. And it doesn't make any sense to me. When > I added the section options to pgAdmin, I allowed it to be used, even > with binaries format. It isn't consistent. > > If noone objects, it would be good to allow schema and data only with > binaries format. >
I have a patch for this. Barring any objections, I'll apply it next week. -- Guillaume http://blog.guillaume.lelarge.info http://www.dalibo.com
commit b3b6fd048fc1a17c73ae538361f8aa046b3f944c Author: Guillaume Lelarge <guilla...@lelarge.info> Date: Sun Feb 9 11:15:51 2014 +0100 Give more options with the plain format Previously, we denied schema/data only, no owner, no tablespace, etc with the plain format. diff --git a/pgadmin/frm/frmBackup.cpp b/pgadmin/frm/frmBackup.cpp index 94fe522..8753d94 100644 --- a/pgadmin/frm/frmBackup.cpp +++ b/pgadmin/frm/frmBackup.cpp @@ -344,23 +344,16 @@ void frmBackup::OnChange(wxCommandEvent &ev) void frmBackup::OnChangePlain(wxCommandEvent &ev) { - bool isPlain = (cbFormat->GetSelection() == 2); bool isDirectory = (cbFormat->GetSelection() == 3); bool isSection = chkSectionPreData->GetValue() || chkSectionData->GetValue() || chkSectionPostData->GetValue(); - chkBlobs->Enable(canBlob && !isPlain); - chkOnlyData->Enable(isPlain && !chkOnlySchema->GetValue() && !isSection); - if (isPlain) - isPlain = !chkOnlyData->GetValue(); - - chkOnlySchema->Enable(isPlain && !isSection); + chkOnlyData->Enable(!chkOnlySchema->GetValue() && !isSection); + chkOnlySchema->Enable(!chkOnlyData->GetValue() && !isSection); chkSectionPreData->Enable(!chkOnlyData->GetValue() && !chkOnlySchema->GetValue()); chkSectionData->Enable(!chkOnlyData->GetValue() && !chkOnlySchema->GetValue()); chkSectionPostData->Enable(!chkOnlyData->GetValue() && !chkOnlySchema->GetValue()); - chkNoOwner->Enable(isPlain); - chkDropDb->Enable(isPlain); - chkCreateDb->Enable(isPlain); + chkDisableTrigger->Enable(chkOnlyData->GetValue()); btnFilename->Enable(!isDirectory);
-- Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-support