SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: python alembic sql postgresql mysql
Alembic - инструмент, использующий SQLAlchemy в качестве движка, для управления базой данных как на уровне SQL запросов, так и с помощью сценариев. Хорошо подходит для миграций и версионирования.
cd yourproject alembic init src/app/alembic
В файле alembic.ini указываем путь до файла базы данных sqlite3
sqlalchemy.url = sqlite:////home/USERNAME/app/data/db.sqlite3
Открываем файл env.py и ищем строку:
target_metadata = None
Изменяем её на:
# Импорт вышестоящего каталога import os import sys sys.path.insert(0, '/'.join(os.path.dirname(os.path.abspath(__file__)).split('/')[:-1])) from myapp.mymodel import Base target_metadata = Base.metadata
где:
alembic revision --autogenerate -m "Структура БД"
alembic upgrade head
Выдаёт сырой SQL код
alembic upgrade head --sql
alembic revision -m "Add a column"
alembic -c alembic.ini history
mako.exceptions.CompileException: Unicode decode operation of encoding 'ascii' failed in file 'alembic/script.py.mako' at line: 0 char: 0
Добавить в alembic/script.py.mako первой строкой
# -*- coding: UTF-8 -*-