Add Alembic to project for database migrations

This commit is contained in:
Lexi / Zoe 2022-04-15 16:10:38 +02:00
parent 7755bfb46d
commit 7ce43a2bfe
Signed by: binaryDiv
GPG key ID: F8D4956E224DA232
15 changed files with 256 additions and 49 deletions

View file

@ -1 +1,5 @@
# Base model first
from .base import metadata, BaseModel
# Data models
from .task import Task

22
tofu_api/models/base.py Normal file
View file

@ -0,0 +1,22 @@
from sqlalchemy import MetaData
from sqlalchemy.orm import declarative_base
__all__ = [
'metadata',
'BaseModel',
]
# Define naming convention for constraints
_naming_convention = {
"ix": 'ix_%(column_0_label)s',
"uq": "uq_%(table_name)s_%(column_0_name)s",
"ck": "ck_%(table_name)s_%(constraint_name)s",
"fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
"pk": "pk_%(table_name)s"
}
# Create metadata object for database schemas
metadata = MetaData(naming_convention=_naming_convention)
# Generate declarative base class for database models
BaseModel = declarative_base(name='BaseModel', metadata=metadata)

View file

@ -1,9 +1,9 @@
from sqlalchemy import Column, Integer, String, Text
from tofu_api.common.database import Model
from .base import BaseModel
class Task(Model):
class Task(BaseModel):
"""
Database model for tasks.
"""