2024-12-20 14:12:29 +08:00
|
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
|
|
from sqlalchemy import MetaData
|
|
|
|
|
|
|
|
POSTGRES_INDEXES_NAMING_CONVENTION = {
|
|
|
|
"ix": "%(column_0_label)s_idx",
|
|
|
|
"uq": "%(table_name)s_%(column_0_name)s_key",
|
|
|
|
"ck": "%(table_name)s_%(constraint_name)s_check",
|
|
|
|
"fk": "%(table_name)s_%(column_0_name)s_fkey",
|
|
|
|
"pk": "%(table_name)s_pkey",
|
|
|
|
}
|
|
|
|
|
|
|
|
metadata = MetaData(naming_convention=POSTGRES_INDEXES_NAMING_CONVENTION)
|
2025-04-30 17:28:02 +08:00
|
|
|
|
|
|
|
# ****** IMPORTANT NOTICE ******
|
|
|
|
#
|
|
|
|
# NOTE(QuantumGhost): Avoid directly importing and using `db` in modules outside of the
|
|
|
|
# `controllers` package.
|
|
|
|
#
|
|
|
|
# Instead, import `db` within the `controllers` package and pass it as an argument to
|
|
|
|
# functions or class constructors.
|
|
|
|
#
|
|
|
|
# Directly importing `db` in other modules can make the code more difficult to read, test, and maintain.
|
|
|
|
#
|
|
|
|
# Whenever possible, avoid this pattern in new code.
|
2024-12-20 14:12:29 +08:00
|
|
|
db = SQLAlchemy(metadata=metadata)
|