docs: def rollback_migration(engine, connection, path, migration_to_rollback):
      """ Rollback a migration """
  
      # Get migrations applied
      migrations_applied = get_migrations_applied(engine, connection)
  
      # Ensure that the migration was previously applied
      if not is_applied(migrations_applied, migration_to_rollback):
          raise RuntimeError(
              '`%s` is not in the list of previously applied migrations.' % (migration_to_rollback))
  
      # Rollback file
      file = path + migration_to_rollback + '/down.sql'
  
      # Ensure that the file exists
      check_exists(file)
  
      # Set vars
      basename = os.path.basename(os.path.dirname(file))
  
      # Get migration source
      source = get_migration_source(file)
      # print (source);
  
      # Run migration rollback
      run_migration(connection, source, engine)
  
      # Delete migration
      delete_migration(connection, basename)
  
      # Log
      print('   -> Migration `%s` has been rolled back' % (basename))
  
      return True