Атрибут schema класса MetaData
Атрибут schema класса MetaData хранит имя схемы
базы данных, которая используется по умолчанию для всех таблиц,
регистрируемых в этом объекте метаданных. Значением атрибута
является строка с именем схемы либо None, если схема
не задана. Атрибут можно передать при создании объекта
MetaData параметром schema, а также изменить
напрямую после создания. Если у таблицы явно указана своя схема,
то она имеет приоритет над значением атрибута.
Синтаксис
MetaData(schema=None)
metadata.schema = 'schema_name'
Пример
Давайте создадим объект MetaData со схемой
по умолчанию и посмотрим на значение атрибута:
from sqlalchemy import MetaData
metadata = MetaData(schema='myschema')
print(metadata.schema)
Результат выполнения кода:
"myschema"
Пример
Давайте посмотрим, как схема из метаданных влияет на полное имя таблицы, зарегистрированной в них:
Результат выполнения кода:
"myschema"
"myschema.articles"
Пример
Давайте явно укажем схему у таблицы, чтобы переопределить значение из метаданных:
Результат выполнения кода:
"otherschema"
"otherschema.articles"
Пример
Давайте изменим значение атрибута schema уже после
создания объекта MetaData:
Результат выполнения кода:
"None"
"myschema"
"myschema.articles"
Пример
Давайте сгенерируем SQL-запрос создания таблицы со схемой по умолчанию:
Итоговый SQL запрос:
CREATE TABLE myschema.articles (
id INTEGER NOT NULL,
title VARCHAR,
PRIMARY KEY (id)
)
Смотрите также
-
класс
MetaData,
который хранит информацию о таблицах и схеме -
атрибут
tables,
который возвращает словарь зарегистрированных таблиц -
атрибут
sorted_tables,
который возвращает таблицы в порядке зависимостей -
метод
create_all,
который создает все зарегистрированные таблицы