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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
from typing import Union
from sqlalchemy import CheckConstraint
from sqlalchemy import Constraint
from sqlalchemy import Index
from sqlalchemy import MetaData
from sqlalchemy import Table
MetaData(
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",
}
)
MetaData(naming_convention={"uq": "uq_%(table_name)s_%(column_0_N_name)s"})
def fk_guid(constraint: Union[Constraint, Index], table: Table) -> str:
return "foo"
MetaData(
naming_convention={
"fk_guid": fk_guid,
"ix": "ix_%(column_0_label)s",
"fk": "fk_%(fk_guid)s",
"foo": lambda c, t: t.name + str(c.name),
}
)
NAMING_CONVENTIONS_ONLY_CALLABLE = {
"fk_guid": fk_guid,
"foo": lambda c, t: t.name + str(c.name),
}
MetaData(naming_convention=NAMING_CONVENTIONS_ONLY_CALLABLE)
NAMING_CONVENTIONS_TYPES_FOR_KEYS_ONLY = {
CheckConstraint: "%(table_name)s_%(constraint_name)s_ck",
Index: "%(column_0_label)s_ix",
}
MetaData(naming_convention=NAMING_CONVENTIONS_TYPES_FOR_KEYS_ONLY)
NAMING_CONVENTIONS_TYPES_AND_STR_FOR_KEYS = {
CheckConstraint: "%(table_name)s_%(constraint_name)s_ck",
Index: "%(column_0_label)s_ix",
"custom": "custom",
"fk": "fk_name",
}
MetaData(naming_convention=NAMING_CONVENTIONS_TYPES_AND_STR_FOR_KEYS)
NAMING_CONVENTIONS_STR = {
"ix": "%(column_0_label)s_ix",
"uq": "%(table_name)s_%(column_0_name)s_uq",
"ck": "%(table_name)s_%(constraint_name)s_ck",
"fk": "%(table_name)s_%(column_0_name)s_%(referred_table_name)s_fk",
"pk": "%(table_name)s_pk",
}
MetaData(naming_convention=NAMING_CONVENTIONS_STR)
|