forked from hans/Nominatim
test: drop template DB when something goes wrong during creation
Fixes #951.
This commit is contained in:
@@ -86,33 +86,38 @@ class NominatimEnvironment(object):
|
|||||||
# just in case... make sure a previous table has been dropped
|
# just in case... make sure a previous table has been dropped
|
||||||
self.db_drop_database(self.template_db)
|
self.db_drop_database(self.template_db)
|
||||||
|
|
||||||
# call the first part of database setup
|
try:
|
||||||
self.write_nominatim_config(self.template_db)
|
# call the first part of database setup
|
||||||
self.run_setup_script('create-db', 'setup-db')
|
self.write_nominatim_config(self.template_db)
|
||||||
# remove external data to speed up indexing for tests
|
self.run_setup_script('create-db', 'setup-db')
|
||||||
conn = psycopg2.connect(database=self.template_db)
|
# remove external data to speed up indexing for tests
|
||||||
cur = conn.cursor()
|
conn = psycopg2.connect(database=self.template_db)
|
||||||
cur.execute("""select tablename from pg_tables
|
cur = conn.cursor()
|
||||||
where tablename in ('gb_postcode', 'us_postcode')""")
|
cur.execute("""select tablename from pg_tables
|
||||||
for t in cur:
|
where tablename in ('gb_postcode', 'us_postcode')""")
|
||||||
conn.cursor().execute('TRUNCATE TABLE %s' % (t[0],))
|
for t in cur:
|
||||||
conn.commit()
|
conn.cursor().execute('TRUNCATE TABLE %s' % (t[0],))
|
||||||
conn.close()
|
conn.commit()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
|
# execute osm2pgsql import on an empty file to get the right tables
|
||||||
|
with tempfile.NamedTemporaryFile(dir='/tmp', suffix='.xml') as fd:
|
||||||
|
fd.write(b'<osm version="0.6"></osm>')
|
||||||
|
fd.flush()
|
||||||
|
self.run_setup_script('import-data',
|
||||||
|
'ignore-errors',
|
||||||
|
'create-functions',
|
||||||
|
'create-tables',
|
||||||
|
'create-partition-tables',
|
||||||
|
'create-partition-functions',
|
||||||
|
'load-data',
|
||||||
|
'create-search-indices',
|
||||||
|
osm_file=fd.name,
|
||||||
|
osm2pgsql_cache='200')
|
||||||
|
except:
|
||||||
|
self.db_drop_database(self.template_db)
|
||||||
|
raise
|
||||||
|
|
||||||
# execute osm2pgsql import on an empty file to get the right tables
|
|
||||||
with tempfile.NamedTemporaryFile(dir='/tmp', suffix='.xml') as fd:
|
|
||||||
fd.write(b'<osm version="0.6"></osm>')
|
|
||||||
fd.flush()
|
|
||||||
self.run_setup_script('import-data',
|
|
||||||
'ignore-errors',
|
|
||||||
'create-functions',
|
|
||||||
'create-tables',
|
|
||||||
'create-partition-tables',
|
|
||||||
'create-partition-functions',
|
|
||||||
'load-data',
|
|
||||||
'create-search-indices',
|
|
||||||
osm_file=fd.name,
|
|
||||||
osm2pgsql_cache='200')
|
|
||||||
|
|
||||||
def setup_api_db(self, context):
|
def setup_api_db(self, context):
|
||||||
self.write_nominatim_config(self.api_test_db)
|
self.write_nominatim_config(self.api_test_db)
|
||||||
|
|||||||
Reference in New Issue
Block a user