Skip to content

Commit 5e39680

Browse files
committed
add naming convention
1 parent 57c4778 commit 5e39680

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@ docs/_build/
5959
# PyBuilder
6060
target/
6161

62+
# mypy
63+
.mypy_cache/
64+
.dmypy.json
65+
dmypy.json
66+
67+
6268
# pyenv python configuration file
6369
.python-version
6470

@@ -73,3 +79,6 @@ target/
7379

7480
# extension stub files
7581
src/gino/ext/*.pyi
82+
83+
# virtual env
84+
venv/

src/gino/api.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,15 @@ async def __aexit__(self, exc_type, exc_val, exc_tb):
210210
await self._args[0].pop_bind().close()
211211

212212

213+
NAMING_CONVENTION = {
214+
"ix": "ix_%(column_0_label)s",
215+
"uq": "uq_%(table_name)s_%(column_0_name)s",
216+
"ck": "ck_%(table_name)s_%(constraint_name)s",
217+
"fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
218+
"pk": "pk_%(table_name)s"
219+
}
220+
221+
213222
class Gino(sa.MetaData):
214223
"""
215224
All-in-one API class of GINO, providing several shortcuts.
@@ -355,7 +364,7 @@ def __init__(
355364
:class:`~sqlalchemy.schema.MetaData`.
356365
357366
"""
358-
super().__init__(bind=bind, **kwargs)
367+
super().__init__(bind=bind, naming_convention=NAMING_CONVENTION, **kwargs)
359368
if model_classes is None:
360369
model_classes = self.model_base_classes
361370
self._model = declarative_base(self, model_classes)

tests/models.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22
import enum
33
import random
44
import string
5+
import uuid
56
from datetime import datetime
67

78
import pytest
89

910
from gino import Gino
1011
from gino.dialects.asyncpg import JSONB
12+
from sqlalchemy.dialects.postgresql import UUID
13+
1114

1215
DB_ARGS = dict(
1316
host=os.getenv("DB_HOST", "localhost"),
@@ -134,19 +137,23 @@ def add_team(self, team):
134137
class UserSetting(db.Model):
135138
__tablename__ = "gino_user_settings"
136139

137-
# No constraints defined on columns
140+
# No constraints defined on these columns
138141
id = db.Column(db.BigInteger())
139142
user_id = db.Column(db.BigInteger())
140143
setting = db.Column(db.Text())
141144
value = db.Column(db.Text())
142145
col1 = db.Column(db.Integer, default=1)
143146
col2 = db.Column(db.Integer, default=2)
144147

148+
# Some constraints defined on these columns
149+
col3 = db.Column(UUID, default=uuid.uuid4, unique=True)
150+
col4 = db.Column(db.Integer, default=4, nullable=False)
151+
145152
# Define indexes and constraints inline
146153
id_pkey = db.PrimaryKeyConstraint("id")
147154
user_id_fk = db.ForeignKeyConstraint(["user_id"], ["gino_users.id"])
148155
user_id_setting_unique = db.UniqueConstraint("user_id", "setting")
149-
col1_check = db.CheckConstraint("col1 >= 1 AND col1 <= 5")
156+
col1_check = db.CheckConstraint("col1 >= 1 AND col1 <= 5", "check_col1")
150157
col2_idx = db.Index("col2_idx", "col2")
151158

152159

0 commit comments

Comments
 (0)