Anonymous avatar Anonymous committed 9949e33

[svn r10870] 0.13dev: Merged from 0.12-stable.

Comments (0)

Files changed (1)

trac/db/postgres_backend.py

                 args.extend(['-p', str(db_prop.get('port', '5432'))])
 
         if 'schema' in db_params:
-            args.extend(['-n', db_params['schema']])
+            try:
+                p = Popen([self.pg_dump_path, '--version'], stdout=PIPE,
+                          close_fds=close_fds)
+            except OSError, e:
+                raise TracError(_("Unable to run %(path)s: %(msg)s",
+                                  path=self.pg_dump_path,
+                                  msg=exception_to_unicode(e)))
+            # Need quote for -n (--schema) option in PostgreSQL 8.2+
+            version = p.communicate()[0]
+            if re.search(r' 8\.[01]\.', version):
+                args.extend(['-n', db_params['schema']])
+            else:
+                args.extend(['-n', '"%s"' % db_params['schema']])
 
         dest_file += ".gz"
         args.extend(['-f', dest_file, db_name])
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.