from abc import ABC, abstractmethod
from dbeasyorm.fields import BaseField
[docs]
class DataBaseBackend(ABC):
[docs]
@abstractmethod
def get_placeholder(self) -> str:
...
[docs]
@abstractmethod
def get_sql_type(self, type: type) -> str:
...
[docs]
@abstractmethod
def get_sql_types_map(self) -> dict:
...
[docs]
@abstractmethod
def get_foreign_key_constraint(self, field_name, related_table, on_delete) -> str:
...
[docs]
@abstractmethod
def connect(self, *args, **kwargs) -> object:
...
[docs]
@abstractmethod
def execute(self, query: str, params=None):
...
[docs]
def generate_insert_sql(self, table_name: str, columns: tuple) -> str:
...
[docs]
@abstractmethod
def generate_select_sql(self, table_name: str, columns: tuple, where_clause: tuple, limit: int = None, offset: int = None) -> str:
...
[docs]
@abstractmethod
def generate_join_sql(self, table_name: str, on: str, join_type: str) -> str:
...
[docs]
@abstractmethod
def generate_update_sql(self, table_name: str, set_clause: tuple, where_clause: tuple) -> str:
...
[docs]
@abstractmethod
def generate_delete_sql(self, table_name: str, where_clause: tuple) -> str:
...
[docs]
@abstractmethod
def generate_create_table_sql(self, table_name: str, fields: BaseField) -> str:
...
[docs]
@abstractmethod
def generate_alter_field_sql(self, *args, **kwargs) -> str:
...
[docs]
@abstractmethod
def generate_drop_field_sql(self, *args, **kwargs) -> str:
...
[docs]
@abstractmethod
def generate_drop_table_sql(self, table_name: str) -> str:
...
[docs]
@abstractmethod
def get_database_schemas(self) -> dict:
...