Атрибут schema класса Sequence
Атрибут schema класса Sequence
задает имя схемы базы данных, в которой
будет создана последовательность. Если
атрибут не указан, последовательность
создается в схеме по умолчанию. Значение
атрибута передается строкой при создании
объекта Sequence.
Синтаксис
Sequence(name, schema=schema_name)
Пример
Давайте создадим последовательность с
указанием схемы public и выведем
значение атрибута:
from sqlalchemy import Sequence
seq = Sequence('article_id_seq', schema='public')
print(seq.schema)
Результат выполнения кода:
"public"
Пример
Давайте создадим последовательность без указания схемы и проверим значение атрибута:
from sqlalchemy import Sequence
seq = Sequence('article_id_seq')
print(seq.schema)
Результат выполнения кода:
None
Пример
Давайте используем последовательность с указанной схемой в составе модели:
from sqlalchemy import Sequence, create_engine
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
article_seq = Sequence('article_id_seq', schema='public')
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(article_seq, primary_key=True)
title: Mapped[str]
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
print(article_seq.schema)
Результат выполнения кода:
"public"