code: def run(self) -> None:
      encrypted_meta_info = self.discover_encrypted_fields()
  
      with self._db.engine.begin() as conn:
          logger.info("Collecting info for re encryption")
          for table_name, columns in encrypted_meta_info.items():
              column_names = list(columns.keys())
              rows = self._select_columns_from_table(
                  conn, column_names, table_name
              )
  
              for row in rows:
                  self._re_encrypt_row(conn, row, table_name, columns)
      logger.info("All tables processed")
  
imports: import logging
  from abc import ABC, abstractmethod
  from typing import Any, Optional
  from flask import Flask
  from flask_babel import lazy_gettext
  from sqlalchemy import text, TypeDecorator
  from sqlalchemy.engine import Connection, Dialect, Row
  from sqlalchemy_utils import EncryptedType
label_desc: Use image node_id 6 for calling the SecretsMigrator obj's underlying member method code with example usage: obj.run() without return types