Миграция базы данных во Flask без SQLAlchemy

Есть ли какая-нибудь библиотека или инструмент для выполнения миграции базы данных в python без SQLAlchemy? Я использую базу данных PostgreSQL, и запросы представляют собой необработанный SQL. Я использую psycopg2 для подключения к базе данных.

вы имеете в виду миграции без использования flask-migrate?

Rohit 20.03.2019 09:39
psycopg2 — это API-интерфейс подключения к базе данных, с psycopg2 вы должны работать с базой данных, используя стандартные команды sql, однако flask-SQLAlchemy — это оболочка ORM, построенная вокруг SQLAlchemy и предоставляющая вам pythonic-интерфейс к базе данных, поэтому, если вы действительно хотите управлять базой данных с помощью python вы должны использовать SQLAlchemy или flask-SQLAlchemy. Фактическая библиотека миграции в python — это alembic, а flask-migrate — это удобная оболочка, созданная поверх alembic.
Rohit 20.03.2019 09:43

Я знаю, но я работаю над проектом, который уже не использует SQLAlchemt, и мне нужно выполнить миграцию базы данных. Какие-либо предложения?

Yosry 20.03.2019 10:20

вам придется использовать перегонный куб и вручную запускать сценарии миграции.

Rohit 20.03.2019 10:29

Если я буду запускать скрипты вручную, какой смысл в перегонном кубе?

Yosry 20.03.2019 10:45
alembic генерирует сценарии миграции для вас, он скрывает огромную сложность обновления схемы для существующей таблицы в базе данных. Обновление схемы существующих таблиц в базе данных является очень сложной операцией и требует тщательного планирования для таблиц с большим количеством столбцов, и представьте, если вам приходится делать это часто, это даже громоздко. alembic в сочетании с flask-migrate делает эту задачу очень легкой.
Rohit 20.03.2019 11:18

Если ваше приложение использует чистый SQL для запросов к базе данных, не имеет ли смысл также писать свои миграции на чистом SQL? Вероятно, хорошей идеей будет создать таблицу, чтобы отслеживать, какие миграции уже запущены, и создать Python-оболочку, чтобы проверять, какие миграции следует запускать, и запускать только эти миграции, но это кажется достаточно тривиальным для написания. Сами миграции могут быть простыми файлами SQL.

Zeust the Unoobian 06.05.2019 10:53

@Zeust the Unoobian Это именно то, что я сделал, и все прошло хорошо. Спасибо за совет.

Yosry 07.05.2019 14:43
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
8
1 712
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Короче, "да".

Существует множество возможностей. Тот, который вы выберете, будет зависеть от выполнения некоторой домашней работы, чтобы определить, какой из них лучше всего соответствует вашим потребностям.

Предлагайте, задавая вопросы, на которые можно ответить с помощью поиска Google, более конкретно о вашей ситуации, чтобы помочь отвечающим понять, почему Google не смог ответить на ваш вопрос на первой странице результатов.

«Alembic — это легкий инструмент миграции базы данных для использования с набором инструментов SQLAlchemy Database Toolkit для Python».

Abdur-Rahmaan Janhangeer 10.03.2021 09:14

Другие вопросы по теме