# Buggy code
def get_conf(
    cls, cog_instance, identifier: int, force_registration=False, cog_name=None
):
    """Get a Config instance for your cog.

    .. warning::

        If you are using this classmethod to get a second instance of an
        existing Config object for a particular cog, you MUST provide the
        correct identifier. If you do not, you *will* screw up all other
        Config instances for that cog.

    Parameters
    ----------
    cog_instance
        This is an instance of your cog after it has been instantiated. If
        you're calling this method from within your cog's :code:`__init__`,
        this is just :code:`self`.
    identifier : int
        A (hard-coded) random integer, used to keep your data distinct from
        any other cog with the same name.
    force_registration : `bool`, optional
        Should config require registration of data keys before allowing you
        to get/set values? See `force_registration`.
    cog_name : str, optional
        Config normally uses ``cog_instance`` to determine tha name of your cog.
        If you wish you may pass ``None`` to ``cog_instance`` and directly specify
        the name of your cog here.

    Returns
    -------
    Config
        A new Config object.

    """
    uuid = str(identifier)
    if cog_name is None:
        cog_name = type(cog_instance).__name__

    driver = get_driver(cog_name, uuid)
    if hasattr(driver, "migrate_identifier"):
        driver.migrate_identifier(identifier)

    conf = cls(
        cog_name=cog_name,
        unique_identifier=uuid,
        force_registration=force_registration,
        driver=driver,
    )
    return conf


# Traceback (RuntimeError)
Traceback (most recent call last):
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/bin/redbot-setup", line 8, in <module>
sys.exit(run_cli())
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/redbot/setup.py", line 429, in run_cli
cli()  # pylint: disable=no-value-for-parameter  # click
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/redbot/setup.py", line 398, in convert
new_storage_details = loop.run_until_complete(do_migration(current_backend, target))
File "/home/zephyrkul/.pyenv/versions/3.8.1/lib/python3.8/asyncio/base_events.py", line 612, in run_until_complete
return future.result()
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/redbot/setup.py", line 210, in do_migration
await config.migrate(cur_driver_cls, new_driver_cls)
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/redbot/core/config.py", line 1460, in migrate
core_conf = Config.get_core_conf()
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/redbot/core/config.py", line 708, in get_core_conf
return cls.get_conf(
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/redbot/core/config.py", line 683, in get_conf
driver = get_driver(cog_name, uuid)
File "/home/zephyrkul/.pyenv/versions/red-V3-3.8.1/lib/python3.8/site-packages/redbot/core/drivers/__init__.py", line 113, in get_driver
raise RuntimeError(
RuntimeError: Please convert to JSON first to continue using the bot.Mongo support was removed in 3.2.

# Fixed code
def get_conf(
    cls,
    cog_instance,
    identifier: int,
    force_registration=False,
    cog_name=None,
    allow_old: bool = False,
):
    """Get a Config instance for your cog.

    .. warning::

        If you are using this classmethod to get a second instance of an
        existing Config object for a particular cog, you MUST provide the
        correct identifier. If you do not, you *will* screw up all other
        Config instances for that cog.

    Parameters
    ----------
    cog_instance
        This is an instance of your cog after it has been instantiated. If
        you're calling this method from within your cog's :code:`__init__`,
        this is just :code:`self`.
    identifier : int
        A (hard-coded) random integer, used to keep your data distinct from
        any other cog with the same name.
    force_registration : `bool`, optional
        Should config require registration of data keys before allowing you
        to get/set values? See `force_registration`.
    cog_name : str, optional
        Config normally uses ``cog_instance`` to determine tha name of your cog.
        If you wish you may pass ``None`` to ``cog_instance`` and directly specify
        the name of your cog here.

    Returns
    -------
    Config
        A new Config object.

    """
    if allow_old:
        log.warning(
            "DANGER! This is getting an outdated driver. "
            "Hopefully this is only being done from convert"
        )
    uuid = str(identifier)
    if cog_name is None:
        cog_name = type(cog_instance).__name__

    driver = get_driver(cog_name, uuid, allow_old=allow_old)
    if hasattr(driver, "migrate_identifier"):
        driver.migrate_identifier(identifier)

    conf = cls(
        cog_name=cog_name,
        unique_identifier=uuid,
        force_registration=force_registration,
        driver=driver,
    )
    return conf