РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
338 of 711 menu

Класс MetaData

Класс MetaData представляет собой контейнер, в котором хранится вся информация о структуре базы данных: таблицы, столбцы, ограничения, индексы и связи. Объект MetaData выступает точкой сбора для описаний, созданных через Table, Column и декларативные модели. Без объекта MetaData невозможно создать ни одну таблицу и выполнить операции create_all или drop_all. Конструктор класса не принимает обязательных параметров, но может получать именованные аргументы, например schema и naming_convention.

Синтаксис

MetaData(schema=None, naming_convention=None)

Пример

Давайте создадим объект MetaData и привяжем к нему одну таблицу:

from sqlalchemy import MetaData, Table, Column, Integer, String metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), ) print(metadata.tables.keys())

Результат выполнения кода:

"dict_keys(['articles'])"

Пример

Давайте создадим объект MetaData с параметром schema и посмотрим, как он применяется к таблицам:

from sqlalchemy import MetaData, Table, Column, Integer, String metadata = MetaData(schema='main') articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), ) print(articles.schema) print(metadata.schema)

Результат выполнения кода:

"main" "main"

Пример

Давайте используем объект MetaData для создания всех таблиц в базе данных:

from sqlalchemy import MetaData, Table, Column, Integer, String, create_engine engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), ) metadata.create_all(engine) print(metadata.sorted_tables)

Результат выполнения кода:

[Table('articles', MetaData(), Column('id', Integer(), table=<articles>, primary_key=True, nullable=False), Column('title', String(), table=<articles>), schema=None)]

Итоговый SQL запрос:

CREATE TABLE articles ( id INTEGER NOT NULL, title VARCHAR, PRIMARY KEY (id) )

Смотрите также

  • метод create_all,
    который создает все таблицы в базе данных
  • метод drop_all,
    который удаляет все таблицы из базы данных
  • атрибут tables,
    который хранит словарь всех таблиц
  • атрибут sorted_tables,
    который возвращает таблицы в порядке создания
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить