Add app.REPLICA_DATABASE (#4289)
This commit is contained in:
committed by
GitHub
parent
e9f4632ff7
commit
a902fa7a6e
@@ -59,6 +59,7 @@ class Settings(BaseSettings):
|
|||||||
if platform.system() == "Windows"
|
if platform.system() == "Windows"
|
||||||
else "postgresql+psycopg://skyvern@localhost/skyvern"
|
else "postgresql+psycopg://skyvern@localhost/skyvern"
|
||||||
)
|
)
|
||||||
|
DATABASE_REPLICA_STRING: str | None = None
|
||||||
DATABASE_STATEMENT_TIMEOUT_MS: int = 60000
|
DATABASE_STATEMENT_TIMEOUT_MS: int = 60000
|
||||||
DISABLE_CONNECTION_POOL: bool = False
|
DISABLE_CONNECTION_POOL: bool = False
|
||||||
PROMPT_ACTION_HISTORY_WINDOW: int = 1
|
PROMPT_ACTION_HISTORY_WINDOW: int = 1
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from skyvern.forge.sdk.artifact.storage.factory import StorageFactory
|
|||||||
from skyvern.forge.sdk.artifact.storage.s3 import S3Storage
|
from skyvern.forge.sdk.artifact.storage.s3 import S3Storage
|
||||||
from skyvern.forge.sdk.cache.base import BaseCache
|
from skyvern.forge.sdk.cache.base import BaseCache
|
||||||
from skyvern.forge.sdk.cache.factory import CacheFactory
|
from skyvern.forge.sdk.cache.factory import CacheFactory
|
||||||
from skyvern.forge.sdk.db.client import AgentDB
|
from skyvern.forge.sdk.db.agent_db import AgentDB
|
||||||
from skyvern.forge.sdk.experimentation.providers import BaseExperimentationProvider, NoOpExperimentationProvider
|
from skyvern.forge.sdk.experimentation.providers import BaseExperimentationProvider, NoOpExperimentationProvider
|
||||||
from skyvern.forge.sdk.schemas.credentials import CredentialVaultType
|
from skyvern.forge.sdk.schemas.credentials import CredentialVaultType
|
||||||
from skyvern.forge.sdk.schemas.organizations import AzureClientSecretCredential, Organization
|
from skyvern.forge.sdk.schemas.organizations import AzureClientSecretCredential, Organization
|
||||||
@@ -44,6 +44,7 @@ class ForgeApp:
|
|||||||
|
|
||||||
SETTINGS_MANAGER: Settings
|
SETTINGS_MANAGER: Settings
|
||||||
DATABASE: AgentDB
|
DATABASE: AgentDB
|
||||||
|
REPLICA_DATABASE: AgentDB
|
||||||
STORAGE: BaseStorage
|
STORAGE: BaseStorage
|
||||||
CACHE: BaseCache
|
CACHE: BaseCache
|
||||||
ARTIFACT_MANAGER: ArtifactManager
|
ARTIFACT_MANAGER: ArtifactManager
|
||||||
@@ -93,6 +94,12 @@ def create_forge_app() -> ForgeApp:
|
|||||||
app.SETTINGS_MANAGER = settings
|
app.SETTINGS_MANAGER = settings
|
||||||
|
|
||||||
app.DATABASE = AgentDB(settings.DATABASE_STRING, debug_enabled=settings.DEBUG_MODE)
|
app.DATABASE = AgentDB(settings.DATABASE_STRING, debug_enabled=settings.DEBUG_MODE)
|
||||||
|
|
||||||
|
if settings.DATABASE_REPLICA_STRING and settings.DATABASE_REPLICA_STRING != settings.DATABASE_STRING:
|
||||||
|
app.REPLICA_DATABASE = AgentDB(settings.DATABASE_REPLICA_STRING, debug_enabled=settings.DEBUG_MODE)
|
||||||
|
else:
|
||||||
|
app.REPLICA_DATABASE = app.DATABASE
|
||||||
|
|
||||||
if settings.SKYVERN_STORAGE_TYPE == "s3":
|
if settings.SKYVERN_STORAGE_TYPE == "s3":
|
||||||
StorageFactory.set_storage(S3Storage())
|
StorageFactory.set_storage(S3Storage())
|
||||||
app.STORAGE = StorageFactory.get_storage()
|
app.STORAGE = StorageFactory.get_storage()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import pytest
|
|||||||
import pytest_asyncio
|
import pytest_asyncio
|
||||||
from sqlalchemy.ext.asyncio import create_async_engine
|
from sqlalchemy.ext.asyncio import create_async_engine
|
||||||
|
|
||||||
from skyvern.forge.sdk.db.client import AgentDB
|
from skyvern.forge.sdk.db.agent_db import AgentDB
|
||||||
from skyvern.forge.sdk.db.models import Base
|
from skyvern.forge.sdk.db.models import Base
|
||||||
|
|
||||||
|
|
||||||
@@ -2,7 +2,7 @@ import asyncio
|
|||||||
|
|
||||||
from structlog import get_logger
|
from structlog import get_logger
|
||||||
|
|
||||||
from skyvern.forge.sdk.db.client import AgentDB
|
from skyvern.forge.sdk.db.agent_db import AgentDB
|
||||||
from skyvern.forge.sdk.schemas.persistent_browser_sessions import PersistentBrowserSession
|
from skyvern.forge.sdk.schemas.persistent_browser_sessions import PersistentBrowserSession
|
||||||
|
|
||||||
LOG = get_logger(__name__)
|
LOG = get_logger(__name__)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from pydantic import ValidationError
|
|||||||
from skyvern.config import settings
|
from skyvern.config import settings
|
||||||
from skyvern.forge import app
|
from skyvern.forge import app
|
||||||
from skyvern.forge.sdk.core import skyvern_context
|
from skyvern.forge.sdk.core import skyvern_context
|
||||||
from skyvern.forge.sdk.db.client import AgentDB
|
from skyvern.forge.sdk.db.agent_db import AgentDB
|
||||||
from skyvern.forge.sdk.models import TokenPayload
|
from skyvern.forge.sdk.models import TokenPayload
|
||||||
from skyvern.forge.sdk.schemas.organizations import Organization, OrganizationAuthToken, OrganizationAuthTokenType
|
from skyvern.forge.sdk.schemas.organizations import Organization, OrganizationAuthToken, OrganizationAuthTokenType
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from playwright._impl._errors import TargetClosedError
|
|||||||
|
|
||||||
from skyvern.config import settings
|
from skyvern.config import settings
|
||||||
from skyvern.exceptions import BrowserSessionNotRenewable, MissingBrowserAddressError
|
from skyvern.exceptions import BrowserSessionNotRenewable, MissingBrowserAddressError
|
||||||
from skyvern.forge.sdk.db.client import AgentDB
|
from skyvern.forge.sdk.db.agent_db import AgentDB
|
||||||
from skyvern.forge.sdk.db.polls import wait_on_persistent_browser_address
|
from skyvern.forge.sdk.db.polls import wait_on_persistent_browser_address
|
||||||
from skyvern.forge.sdk.schemas.persistent_browser_sessions import (
|
from skyvern.forge.sdk.schemas.persistent_browser_sessions import (
|
||||||
PersistentBrowserSession,
|
PersistentBrowserSession,
|
||||||
|
|||||||
Reference in New Issue
Block a user