code: def export_db(self, dirpath):
          
          if self.db is not None:
              self.db.commit()
              
          import virtualchain_hooks
          
          db_path = os.path.join(dirpath, os.path.basename(self.get_db_path()))
          snapshots_path = os.path.join(dirpath, os.path.basename(virtualchain.get_snapshots_filename(virtualchain_hooks, self.working_dir)))
          atlas_path = os.path.join(dirpath, 'atlas.db')
          subdomain_path = os.path.join(dirpath, 'subdomains.db')
          subdomain_queue_path = os.path.join(dirpath, 'subdomains.db.queue')
  
          src_atlas_path = os.path.join(self.working_dir, 'atlas.db')
          src_subdomain_path = os.path.join(self.working_dir, 'subdomains.db')
          src_subdomain_queue_path = os.path.join(self.working_dir, 'subdomains.db.queue')
          
          virtualchain.sqlite3_backup(self.get_db_path(), db_path)
          virtualchain.sqlite3_backup(virtualchain.get_snapshots_filename(virtualchain_hooks, self.working_dir), snapshots_path)
  
          if os.path.exists(src_atlas_path):
              virtualchain.sqlite3_backup(src_atlas_path, atlas_path)
  
          if os.path.exists(src_subdomain_path):
              virtualchain.sqlite3_backup(src_subdomain_path, subdomain_path)
  
          if os.path.exists(src_subdomain_queue_path):
              virtualchain.sqlite3_backup(src_subdomain_queue_path, subdomain_queue_path)
docs: Copy all database info to a given directory.
          Used primarily for testing; production users
          should just pull a backup db from ~/.blockstack-server/backups
          (or whatever the working directory is)