Skip to content

Commit

Permalink
Merge pull request #130 from Pylons/sqla-2.0
Browse files Browse the repository at this point in the history
update mapper patterns following sqla orm migration guide
  • Loading branch information
mmerickel committed Feb 4, 2024
2 parents 745088e + 420ad03 commit 383ccf9
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 23 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
from sqlalchemy.orm import declarative_base
from sqlalchemy.schema import MetaData
from sqlalchemy import MetaData
from sqlalchemy.orm import DeclarativeBase

# Recommended naming convention used by Alembic, as various different database
# providers will autogenerate vastly different names making migrations more
# difficult. See: https://alembic.sqlalchemy.org/en/latest/naming.html
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 = MetaData(naming_convention=NAMING_CONVENTION)
Base = declarative_base(metadata=metadata)
class Base(DeclarativeBase):
metadata = 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"
})
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
from sqlalchemy import (
Column,
Index,
Integer,
Text,
)
from sqlalchemy import Index, Integer, Text
from sqlalchemy.orm import Mapped, mapped_column
from typing import Optional

from .meta import Base


class MyModel(Base):
__tablename__ = 'models'
id = Column(Integer, primary_key=True)
name = Column(Text)
value = Column(Integer)
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[Optional[str]]
value: Mapped[Optional[int]]


Index('my_index', MyModel.name, unique=True, mysql_length=255)

0 comments on commit 383ccf9

Please sign in to comment.