class_docstr: This entity may change or be removed in a future release without warning.
  SQLAlchemy compliant backend store for tracking meta data for MLflow entities. MLflow
  supports the database dialects ``mysql``, ``mssql``, ``sqlite``, and ``postgresql``.
  As specified in the
  `SQLAlchemy docs <https://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls>`_ ,
  the database URI is expected in the format
  ``<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>``. If you do not
  specify a driver, SQLAlchemy uses a dialect's default driver.
  
  This store interacts with SQL store using SQLAlchemy abstractions defined for MLflow entities.
  :py:class:`mlflow.store.model_registry.models.RegisteredModel` and
  :py:class:`mlflow.store.model_registry.models.ModelVersion`
docstr: Create a database backed store.
  
  :param db_uri: The SQLAlchemy database URI string to connect to the database. See
                 the `SQLAlchemy docs
                 <https://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls>`_
                 for format specifications. MLflow supports the dialects ``mysql``,
                 ``mssql``, ``sqlite``, and ``postgresql``.
  :param default_artifact_root: Path/URI to location suitable for large data (such as a blob
                                store object, DBFS path, or shared NFS file system).
docstr_tok: ["Create","a","database","backed","store",".",":","param","db_uri",":","The","SQLAlchemy","database","URI","string","to","connect","to","the","database",".","See","the","`","SQLAlchemy","docs","<","https",":","\/\/docs.sqlalchemy.org\/en\/latest\/core\/engines.html","#","database-urls",">","`","_","for","format","specifications",".","MLflow","supports","the","dialects","``","mysql","``",",","``","mssql","``",",","``","sqlite","``",",","and","``","postgresql","``",".",":","param","default_artifact_root",":","Path\/URI","to","location","suitable","for","large","data","(","such","as","a","blob","store","object",",","DBFS","path",",","or","shared","NFS","file","system",")","."]
code: def __init__(self, db_uri):
      """
      Create a database backed store.
  
      :param db_uri: The SQLAlchemy database URI string to connect to the database. See
                     the `SQLAlchemy docs
                     <https://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls>`_
                     for format specifications. MLflow supports the dialects ``mysql``,
                     ``mssql``, ``sqlite``, and ``postgresql``.
      :param default_artifact_root: Path/URI to location suitable for large data (such as a blob
                                    store object, DBFS path, or shared NFS file system).
      """
      super().__init__()
      self.db_uri = db_uri
      self.db_type = extract_db_type_from_uri(db_uri)
      self.engine = (
          mlflow.store.db.utils.create_sqlalchemy_engine_with_retry(
              db_uri
          )
      )
      if not mlflow.store.db.utils._all_tables_exist(self.engine):
          mlflow.store.db.utils._initialize_tables(self.engine)
      # Verify that all model registry tables exist.
      SqlAlchemyStore._verify_registry_tables_exist(self.engine)
      SessionMaker = sqlalchemy.orm.sessionmaker(bind=self.engine)
      self.ManagedSessionMaker = (
          mlflow.store.db.utils._get_managed_session_maker(
              SessionMaker, self.db_type
          )
      )
  
imports: import logging
  import urllib
  import sqlalchemy
  from sqlalchemy.future import select
  import mlflow.store.db.utils
  from mlflow.entities.model_registry.model_version_stages import ALL_STAGES, DEFAULT_STAGES_FOR_GET_LATEST_VERSIONS, STAGE_ARCHIVED, STAGE_DELETED_INTERNAL, get_canonical_stage
  from mlflow.exceptions import MlflowException
  from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE, INVALID_STATE, RESOURCE_ALREADY_EXISTS, RESOURCE_DOES_NOT_EXIST
  from mlflow.store.artifact.utils.models import _parse_model_uri
  from mlflow.store.entities.paged_list import PagedList
  from mlflow.store.model_registry import SEARCH_MODEL_VERSION_MAX_RESULTS_DEFAULT, SEARCH_MODEL_VERSION_MAX_RESULTS_THRESHOLD, SEARCH_REGISTERED_MODEL_MAX_RESULTS_DEFAULT, SEARCH_REGISTERED_MODEL_MAX_RESULTS_THRESHOLD
  from mlflow.store.model_registry.abstract_store import AbstractStore
  from mlflow.store.model_registry.dbmodels.models import SqlModelVersion, SqlModelVersionTag, SqlRegisteredModel, SqlRegisteredModelAlias, SqlRegisteredModelTag
  from mlflow.utils.search_utils import SearchModelUtils, SearchModelVersionUtils, SearchUtils
  from mlflow.utils.time import get_current_time_millis
  from mlflow.utils.uri import extract_db_type_from_uri
  from mlflow.utils.validation import _validate_model_alias_name, _validate_model_name, _validate_model_version, _validate_model_version_tag, _validate_registered_model_tag, _validate_tag_name
label_desc: Use image node_id 1 to create a new SqlAlchemyStore object from inherited base classes: AbstractStore with example: obj = SqlAlchemyStore(db_uri)