diff --git a/litellm/proxy/prisma_migration.py b/litellm/proxy/prisma_migration.py index ff26151df8..22fa4da9de 100644 --- a/litellm/proxy/prisma_migration.py +++ b/litellm/proxy/prisma_migration.py @@ -10,6 +10,7 @@ sys.path.insert( 0, os.path.abspath("./") ) # Adds the parent directory to the system path from litellm.secret_managers.aws_secret_manager import decrypt_env_var +from litellm._logging import verbose_proxy_logger if os.getenv("USE_AWS_KMS", None) is not None and os.getenv("USE_AWS_KMS") == "True": ## V2 IMPLEMENTATION OF AWS KMS - USER WANTS TO DECRYPT MULTIPLE KEYS IN THEIR ENV @@ -21,6 +22,7 @@ if os.getenv("USE_AWS_KMS", None) is not None and os.getenv("USE_AWS_KMS") == "T # Check if DATABASE_URL is not set database_url = os.getenv("DATABASE_URL") if not database_url: + verbose_proxy_logger.info("Constructing DATABASE_URL from environment variables") # Check if all required variables are provided database_host = os.getenv("DATABASE_HOST") database_username = os.getenv("DATABASE_USERNAME") @@ -30,12 +32,14 @@ if not database_url: if database_host and database_username and database_password and database_name: # Construct DATABASE_URL from the provided variables database_url = f"postgresql://{database_username}:{database_password}@{database_host}/{database_name}" - os.environ["DATABASE_URL"] = database_url + os.environ["DATABASE_URL"] = database_url # Log the constructed URL else: - print( # noqa + verbose_proxy_logger.error( "Error: Required database environment variables are not set. Provide a postgres url for DATABASE_URL." # noqa ) exit(1) +else: + verbose_proxy_logger.info("Using existing DATABASE_URL environment variable") # Log existing DATABASE_URL # Set DIRECT_URL to the value of DATABASE_URL if it is not set, required for migrations direct_url = os.getenv("DIRECT_URL") @@ -49,29 +53,40 @@ exit_code = 1 disable_schema_update = os.getenv("DISABLE_SCHEMA_UPDATE") if disable_schema_update is not None and disable_schema_update == "True": - print("Skipping schema update...") # noqa + verbose_proxy_logger.info("Skipping schema update...") exit(0) while retry_count < max_retries and exit_code != 0: retry_count += 1 - print(f"Attempt {retry_count}...") # noqa + verbose_proxy_logger.info(f"Attempt {retry_count}...") # run prisma generate - result = subprocess.run(["prisma", "generate"], capture_output=True) + verbose_proxy_logger.info("Running 'prisma generate'...") + result = subprocess.run(["prisma", "generate"], capture_output=True, text=True) + verbose_proxy_logger.info(f"'prisma generate' stdout: {result.stdout}") # Log stdout exit_code = result.returncode + if exit_code != 0: + verbose_proxy_logger.info(f"'prisma generate' failed with exit code {exit_code}.") + verbose_proxy_logger.error(f"'prisma generate' stderr: {result.stderr}") # Log stderr + # Run the Prisma db push command + verbose_proxy_logger.info("Running 'prisma db push --accept-data-loss'...") result = subprocess.run( - ["prisma", "db", "push", "--accept-data-loss"], capture_output=True + ["prisma", "db", "push", "--accept-data-loss"], capture_output=True, text=True ) + verbose_proxy_logger.info(f"'prisma db push' stdout: {result.stdout}") # Log stdout exit_code = result.returncode - if exit_code != 0 and retry_count < max_retries: - print("Retrying in 10 seconds...") # noqa - time.sleep(10) + if exit_code != 0: + verbose_proxy_logger.info(f"'prisma db push' stderr: {result.stderr}") # Log stderr + verbose_proxy_logger.error(f"'prisma db push' failed with exit code {exit_code}.") + if retry_count < max_retries: + verbose_proxy_logger.info("Retrying in 10 seconds...") + time.sleep(10) -if exit_code != 0: - print(f"Unable to push database changes after {max_retries} retries.") # noqa +if retry_count == max_retries and exit_code != 0: + verbose_proxy_logger.error(f"Unable to push database changes after {max_retries} retries.") exit(1) -print("Database push successful!") # noqa +verbose_proxy_logger.info("Database push successful!") diff --git a/litellm/types/files.py b/litellm/types/files.py index 577b9b55cc..600ad806e2 100644 --- a/litellm/types/files.py +++ b/litellm/types/files.py @@ -251,15 +251,18 @@ GEMINI_1_5_ACCEPTED_FILE_TYPES: Set[FileType] = { # Image FileType.PNG, FileType.JPEG, + FileType.WEBP, # Audio FileType.AAC, FileType.FLAC, FileType.MP3, FileType.MPA, + FileType.MPEG, FileType.MPGA, FileType.OPUS, FileType.PCM, FileType.WAV, + FileType.WEBM, # Video FileType.FLV, FileType.MOV, @@ -272,6 +275,7 @@ GEMINI_1_5_ACCEPTED_FILE_TYPES: Set[FileType] = { FileType.THREE_GPP, # PDF FileType.PDF, + FileType.TXT, }