code: def recreate_grams(self):
          
  
          session = self.Session()
  
          for document in session.query(Document).all():
              logger.info(document.text)
              grams = self._get_grams(session, document.text, make=True)
              document.grams = list(grams)
  
          broken_links = session.query(Gram) \
              .filter(~Gram.documents.any()).all()
          for gram in broken_links:
              session.delete(gram)
  
          session.commit()
docs: Re-create grams for database.
  
          In normal situations, you never need to call this method.
          But after migrate DB, this method is useful.
  
          :param session: DB session
          :type session: :class:`sqlalchemt.orm.Session`