(1) Асинхронный SQLAlchemy 2: простой пошаговый гайд по настройке, моделям, связям и миграциям с использованием Alembic
Metadata
- Author: Хабр
- Full Title: (1) Асинхронный SQLAlchemy 2: простой пошаговый гайд по настройке, моделям, связям и миграциям с использованием Alembic
- Category:#articles
- Document Tags: alembic outline Outline sqlalchemy
- Summary: Эта статья предлагает пошаговое руководство по настройке асинхронного SQLAlchemy и использованию Alembic для управления миграциями базы данных. Модели описывают таблицы и связи, что упрощает работу с данными и позволяет эффективно управлять изменениями. В статье также рассматриваются основные принципы работы с различными типами данных и связями между таблицами.
- URL: https://habr.com/ru/companies/amvera/articles/849836/
Highlights
-
Связь один-ко-многим с Comment comments: Mapped[list[“Comment”]] = relationship( “Comment”, back_populates=“post”, cascade=“all, delete-orphan” ) (View Highlight)
-
post_id: Mapped[int] = mapped_column(ForeignKey(‘posts.id’)) (View Highlight)
-
AsyncAttrs: Позволяет создавать асинхронные модели, что улучшает производительность при работе с асинхронными операциями. (View Highlight)
-
Enum из модуля enum в Python используется для создания перечислений, которые представляют собой набор именованных значений. Это позволяет определять типы данных с ограниченным набором возможных значений. (View Highlight)
-
В SQLAlchemy технология
relationship
позволяет настраивать и управлять связями между таблицами. В случае связи один-к-одному между таблицамиUser
иProfile
настройка выглядит следующим образом: (View Highlight) -
cascade="all, delete-orphan"
: Эта настройка в моделиUser
указывает, что все посты, связанные с пользователем, должны быть удалены, если удаляется сам пользователь. (View Highlight) -
Для начала работы с Alembic, нам нужно выполнить его инициализацию с поддержкой асинхронного взаимодействия с базой данных. Это можно сделать с помощью следующей команды: (View Highlight)
- Note: Добавить ссылку сюда в заметку про alembic
-
Когда вы используете Alembic для управления миграциями, нужно учитывать несколько важных особенностей, связанных с типами данных ENUM в PostgreSQL. Давайте разберемся с двумя основными проблемами и способами их решения. (View Highlight)
-
Совет: Всегда указывайте
create_type=False
для колонок с ENUM, чтобы избежать конфликтов при повторных миграциях. (View Highlight) -
Если вам нужно обновить базу данных не до самой последней версии, а до конкретной миграции, можно указать идентификатор (ID) нужной миграции. Например: (View Highlight)
-
Откат на одну версию назад Чтобы откатить миграцию на одну версию назад, используйте следующую команду: (View Highlight)
📂 Articles | Последнее изменение: 10.12.2024 14:19