Documentation Index Fetch the complete documentation index at: https://docs.prefect.io/llms.txt
Use this file to discover all available pages before exploring further.
prefect.server.database.interface
Classes
DBSingleton
Ensures that only one database interface is created per unique key
PrefectDBInterface
An interface for backend-specific SqlAlchemy actions and ORM models.
The REST API can be configured to run against different databases in order maintain
performance at different scales. This interface integrates database- and dialect-
specific configuration into a unified interface that the orchestration engine runs
against.
Methods:
Agent
Agent( self ) -> type[orm_models.Agent]
An agent model
Artifact
Artifact( self ) -> type[orm_models.Artifact]
An artifact orm model
ArtifactCollection
ArtifactCollection( self ) -> type[orm_models.ArtifactCollection]
An artifact collection orm model
Automation
Automation( self ) -> type[orm_models.Automation]
An automation model
AutomationBucket
AutomationBucket( self ) -> type[orm_models.AutomationBucket]
An automation bucket model
AutomationEventFollower
AutomationEventFollower( self ) -> type[orm_models.AutomationEventFollower]
A model capturing one event following another event
AutomationRelatedResource( self ) -> type[orm_models.AutomationRelatedResource]
An automation related resource model
Base
Base( self ) -> type[orm_models.Base]
Base class for orm models
BlockDocument
BlockDocument( self ) -> type[orm_models.BlockDocument]
A block document model
BlockDocumentReference
BlockDocumentReference( self ) -> type[orm_models.BlockDocumentReference]
A block document reference model
BlockSchema
BlockSchema( self ) -> type[orm_models.BlockSchema]
A block schema model
BlockSchemaReference
BlockSchemaReference( self ) -> type[orm_models.BlockSchemaReference]
A block schema reference model
BlockType
BlockType( self ) -> type[orm_models.BlockType]
A block type model
CompositeTriggerChildFiring
CompositeTriggerChildFiring( self ) -> type[orm_models.CompositeTriggerChildFiring]
A model capturing a composite trigger’s child firing
ConcurrencyLimit
ConcurrencyLimit( self ) -> type[orm_models.ConcurrencyLimit]
A concurrency model
ConcurrencyLimitV2
ConcurrencyLimitV2( self ) -> type[orm_models.ConcurrencyLimitV2]
A v2 concurrency model
Configuration
Configuration( self ) -> type[orm_models.Configuration]
An configuration model
CsrfToken
CsrfToken( self ) -> type[orm_models.CsrfToken]
A csrf token model
Deployment
Deployment( self ) -> type[orm_models.Deployment]
A deployment orm model
DeploymentSchedule
DeploymentSchedule( self ) -> type[orm_models.DeploymentSchedule]
A deployment schedule orm model
Event
Event( self ) -> type[orm_models.Event]
An event model
EventResource
EventResource( self ) -> type[orm_models.EventResource]
An event resource model
Flow
Flow( self ) -> type[orm_models.Flow]
A flow orm model
FlowRun
FlowRun( self ) -> type[orm_models.FlowRun]
A flow run orm model
FlowRunInput( self ) -> type[orm_models.FlowRunInput]
A flow run input model
FlowRunState
FlowRunState( self ) -> type[orm_models.FlowRunState]
A flow run state orm model
Log
Log( self ) -> type[orm_models.Log]
A log orm model
SavedSearch
SavedSearch( self ) -> type[orm_models.SavedSearch]
A saved search orm model
TaskRun
TaskRun( self ) -> type[orm_models.TaskRun]
A task run orm model
TaskRunState
TaskRunState( self ) -> type[orm_models.TaskRunState]
A task run state orm model
TaskRunStateCache
TaskRunStateCache( self ) -> type[orm_models.TaskRunStateCache]
A task run state cache orm model
Variable
Variable( self ) -> type[orm_models.Variable]
A variable model
WorkPool
WorkPool( self ) -> type[orm_models.WorkPool]
A work pool orm model
WorkQueue
WorkQueue( self ) -> type[orm_models.WorkQueue]
A work queue model
Worker
Worker( self ) -> type[orm_models.Worker]
A worker process orm model
create_db
Create the database
dialect
dialect( self ) -> type[sa.engine.Dialect]
drop_db
Drop the database by removing all tables directly.
This reflects the actual database schema and drops every table rather
than running all Alembic downgrade migrations in reverse. Running
downgrades is fragile because individual migration downgrade steps may
fail on real-world data (e.g. re-adding a foreign key constraint when
orphaned references exist). Dropping tables directly is both faster
and more robust.
Reflection is used instead of Base.metadata.drop_all() so that
tables created by migrations but not tracked in the ORM (e.g.
deployment_version, alembic_version) are also removed.
engine
engine( self ) -> AsyncEngine
Provides a SqlAlchemy engine against a specific database.
is_db_connectable
is_db_connectable( self ) -> bool
Returns boolean indicating if the database is connectable.
This method is used to determine if the server is ready to accept requests.
run_migrations_downgrade
run_migrations_downgrade( self , revision: str = '-1' ) -> None
Run all downgrade migrations
run_migrations_upgrade
run_migrations_upgrade( self ) -> None
Run all upgrade migrations
session
session( self ) -> AsyncSession
Provides a SQLAlchemy session.
session_context
session_context( self , begin_transaction: bool = False , with_for_update: bool = False )
Provides a SQLAlchemy session and a context manager for opening/closing
the underlying connection.
Args:
begin_transaction: if True, the context manager will begin a SQL transaction.
Exiting the context manager will COMMIT or ROLLBACK any changes.