Fixed #10364 -- Correctly identify test spatial database creation errors to the user.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10603 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Justin Bronn 2009-04-19 23:31:14 +00:00
parent be11bd40d4
commit bfe36750b1
1 changed files with 12 additions and 9 deletions

View File

@ -46,16 +46,19 @@ def _create_with_cursor(db_name, verbosity=1, autoclobber=False):
# Trying to create the database first.
cursor.execute(create_sql)
except Exception, e:
# Drop and recreate, if necessary.
if not autoclobber:
confirm = raw_input("\nIt appears the database, %s, already exists. Type 'yes' to delete it, or 'no' to cancel: " % db_name)
if autoclobber or confirm == 'yes':
if verbosity >= 1: print 'Destroying old spatial database...'
drop_db(db_name)
if verbosity >= 1: print 'Creating new spatial database...'
cursor.execute(create_sql)
if 'already exists' in e.pgerror.lower():
# Database already exists, drop and recreate if user agrees.
if not autoclobber:
confirm = raw_input("\nIt appears the database, %s, already exists. Type 'yes' to delete it, or 'no' to cancel: " % db_name)
if autoclobber or confirm == 'yes':
if verbosity >= 1: print 'Destroying old spatial database...'
drop_db(db_name)
if verbosity >= 1: print 'Creating new spatial database...'
cursor.execute(create_sql)
else:
raise Exception('Spatial database creation canceled.')
else:
raise Exception('Spatial Database Creation canceled.')
raise Exception('Spatial database creation failed: "%s"' % e.pgerror.strip())
created_regex = re.compile(r'^createdb: database creation failed: ERROR: database ".+" already exists')
def _create_with_shell(db_name, verbosity=1, autoclobber=False):