Source code for dvc.core.database

from abc import ABC, abstractmethod
from enum import Enum
from typing import Any, Union

from dvc.core.struct import DatabaseRevisionFile, DatabaseVersion

from psycopg2._psycopg import connection


[docs]class SupportedDatabaseFlavour(Enum): """ List of database flavours supported in the programme """ Postgres = 'postgres'
DBConnLike = Union[ # Postgres connection connection ]
[docs]class SQLFileExecutorTemplate(ABC): """ Abstract Base Class for all SQLFileExecutors for different datbaases """ def __init__(self, db_conn: DBConnLike, target_schema: str, ): self.conn = db_conn self.target_schema = target_schema
[docs] @abstractmethod def set_up_database_revision_control_tables(self): pass
[docs] @abstractmethod def get_latest_database_version(self): pass
[docs] @abstractmethod def execute_database_revision(self, database_revision: DatabaseRevisionFile ): pass