This commit is contained in:
long2ice
2020-05-11 00:09:13 +08:00
commit 75e7a46e85
13 changed files with 627 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
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()

View File

@@ -0,0 +1,28 @@
from tortoise.backends.mysql.schema_generator import MySQLSchemaGenerator
from alice.backends import DDL
class MysqlDDL(DDL):
schema_generator_cls = MySQLSchemaGenerator
def drop_table(self):
pass
def add_column(self):
pass
def drop_column(self):
pass
def add_index(self):
pass
def drop_index(self):
pass
def add_fk(self):
pass
def drop_fk(self):
pass