docs: def migrate(connection, dsn):
      """ Collects all migrations and applies missed.
  
      Args:
          connection (sqlalchemy connection):
  
      """
      all_migrations = _get_all_migrations()
      logger.debug('Collected migrations: {}'.format(all_migrations))
  
      for version, modname in all_migrations:
          if _is_missed(connection, version) and version <= SCHEMA_VERSION:
              logger.info('Missed migration: {} migration is missed. Migrating...'.format(version))
              module = __import__(modname, fromlist='dummy')
  
              # run each migration under its own transaction. This allows us to apply valid migrations
              # and break on invalid.
              trans = connection.begin()
              try:
                  module.Migration().migrate(connection)
                  _update_version(connection, version)
                  trans.commit()
              except:
                  trans.rollback()
                  logger.error("Failed to migrate '{}'  on {} ".format(version, dsn))
                  raise