37 lines
978 B
Python
37 lines
978 B
Python
from typing import Type
|
|
|
|
from tortoise import Model, BaseDBAsyncClient
|
|
from tortoise.backends.base.schema_generator import BaseSchemaGenerator
|
|
|
|
|
|
class DDL:
|
|
schema_generator_cls: Type[BaseSchemaGenerator] = BaseSchemaGenerator
|
|
|
|
def __init__(self, client: "BaseDBAsyncClient", model: "Type[Model]"):
|
|
self.model = model
|
|
self.schema_generator = self.schema_generator_cls(client)
|
|
|
|
def create_table(self):
|
|
return self.schema_generator._get_table_sql(self.model, True)['table_creation_string']
|
|
|
|
def drop_table(self):
|
|
return f'drop table {self.model._meta.db_table}'
|
|
|
|
def add_column(self):
|
|
raise NotImplementedError()
|
|
|
|
def drop_column(self):
|
|
raise NotImplementedError()
|
|
|
|
def add_index(self):
|
|
raise NotImplementedError()
|
|
|
|
def drop_index(self):
|
|
raise NotImplementedError()
|
|
|
|
def add_fk(self):
|
|
raise NotImplementedError()
|
|
|
|
def drop_fk(self):
|
|
raise NotImplementedError()
|