Files
AI/참고/guardrails-main/guardrails/cli/db/downgrade.py

40 lines
1.4 KiB
Python
Raw Normal View History

2026-05-12 19:40:31 +09:00
import typer
from typing import Annotated
from importlib.metadata import PackageNotFoundError, version
from guardrails.cli.db.db import db_command
from guardrails.cli.logger import logger
@db_command.command(name="downgrade")
def downgrade_db(
revision: Annotated[str, typer.Argument()] = "-1",
env: str = typer.Option(
default=".env",
help="An env file to load environment variables from.",
),
env_override: bool = typer.Option(
default=False,
help="Override existing environment variables with values from the env file.",
),
):
"""Downgrades the database schema for the guardrails-api to a previous
revision.
You should normally never need to use this command. However it is
offered as an extra lever for custom use cases.
"""
try:
guardrails_api_version = version("guardrails_api")
major, minor, *_ = guardrails_api_version.split(".")
if major == "0" and int(minor) < 3:
logger.error(
"[ERROR]: 'db downgrade' is only supported for guardrails-api>=0.3.0."
f" You have guardrails-api=={guardrails_api_version}."
)
else:
from guardrails_api.cli.db.downgrade import downgrade # type: ignore
downgrade(revision, env, env_override)
except PackageNotFoundError:
logger.error("[ERROR]: 'db downgrade' requires guardrails-api to be installed.")