Browse Source

lib/init: clean up sqlite db if existing, see https://trac.osgeo.org/grass/ticket/3697

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@73692 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Metz 6 years ago
parent
commit
5cd0a2db93
1 changed files with 15 additions and 0 deletions
  1. 15 0
      lib/init/grass.py

+ 15 - 0
lib/init/grass.py

@@ -2228,6 +2228,21 @@ def main():
 
         # close GUI if running
         close_gui()
+        # clean the sqlite db
+        from grass.script import db as gdb
+        from grass.script import core as gcore
+        conn = gdb.db_connection()
+        if conn and conn['driver'] == 'sqlite':
+	    # check if db exists
+	    gisenv = gcore.gisenv()
+	    database = conn['database']
+	    database = database.replace('$GISDBASE', gisenv['GISDBASE'])
+	    database = database.replace('$LOCATION_NAME', gisenv['LOCATION_NAME'])
+	    database = database.replace('$MAPSET', gisenv['MAPSET'])
+	    if os.path.exists(database):
+		message(_("Cleaning up sqlite database ..."))
+		gcore.start_command('db.execute', sql = 'VACUUM')
+
         # here we are at the end of grass session
         clear_screen()
         # save 'last used' GISRC after removing variables which shouldn't