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

Reply via email to