code: async def migrate_redis1_to_redis2(storage1: RedisStorage, storage2: RedisStorage2):
      
      if not isinstance(storage1, RedisStorage):  # better than assertion
          raise TypeError(f"{type(storage1)} is not RedisStorage instance.")
      if not isinstance(storage2, RedisStorage):
          raise TypeError(f"{type(storage2)} is not RedisStorage instance.")
  
      log = logging.getLogger('aiogram.RedisStorage')
  
      for chat, user in await storage1.get_states_list():
          state = await storage1.get_state(chat=chat, user=user)
          await storage2.set_state(chat=chat, user=user, state=state)
  
          data = await storage1.get_data(chat=chat, user=user)
          await storage2.set_data(chat=chat, user=user, data=data)
  
          bucket = await storage1.get_bucket(chat=chat, user=user)
          await storage2.set_bucket(chat=chat, user=user, bucket=bucket)
  
          log.info(f"Migrated user {user} in chat {chat}")
docs: Helper for migrating from RedisStorage to RedisStorage2
  
      :param storage1: instance of RedisStorage
      :param storage2: instance of RedisStorage2
      :return: