(1) Асинхронный SQLAlchemy 2: простой пошаговый гайд по настройке, моделям, связям и миграциям с использованием Alembic

rw-book-cover

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