File size: 1,158 Bytes
ab250f8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
from sqlalchemy import inspect
from app.backend.controllers.base_controller import engine
from app.backend.models.base_model import Base
from app.backend.models.chats import Chat
from app.backend.models.messages import Message
from app.backend.models.users import User
from app.backend.models.documents import Document
def table_exists(name: str) -> bool:
return inspect(engine).has_table(name)
def create_tables() -> None:
Base.metadata.create_all(engine)
def drop_tables() -> None:
# List tables in the correct order for dropping (considering dependencies)
tables = [Document.__table__, Message.__table__, Chat.__table__, User.__table__]
for table in tables:
if table_exists(table.name):
try:
table.drop(engine)
print(f"Dropped table {table.name}")
except Exception as e:
print(f"Error dropping table {table.name}: {e}")
else:
print(f"Table {table.name} does not exist, skipping drop")
def automigrate() -> None:
print("Starting automigration...")
drop_tables()
create_tables()
print("Automigration completed.") |