Files
DevOpsLab/app/alembic/versions/006_add_dockerfile_platforms.py
Сергей Антропов 1fbf9185a2 feat: добавлена пометка типа операции (Build/Push) в истории сборок Dockerfile
- Добавлена колонка 'Тип' во все таблицы истории сборок
- Для push операций отображается registry вместо платформ
- Сохранение пользователя при создании push лога
- Исправлена ошибка с logger в push_docker_image endpoint
- Улучшено отображение истории сборок с визуальными индикаторами
2026-02-15 22:59:02 +03:00

47 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Add platforms column to dockerfiles table
Revision ID: 006
Revises: 005
Create Date: 2024-01-04 12:00:00.000000
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
import json
# revision identifiers, used by Alembic.
revision = '006'
down_revision = '005'
branch_labels = None
depends_on = None
def upgrade() -> None:
"""Добавление поля platforms в таблицу dockerfiles"""
connection = op.get_bind()
# Добавляем колонку platforms (JSON) с дефолтным значением
op.add_column(
'dockerfiles',
sa.Column('platforms', postgresql.JSON(astext_type=sa.Text()), nullable=True)
)
# Устанавливаем дефолтные значения для существующих записей
# По умолчанию: linux/amd64 (x86_64), linux/386 (x86) и linux/arm64 (macOS M1)
default_platforms = ["linux/amd64", "linux/386", "linux/arm64"]
# Используем CAST для преобразования строки JSON в JSONB
connection.execute(
sa.text("""
UPDATE dockerfiles
SET platforms = CAST(:platforms AS jsonb)
WHERE platforms IS NULL
"""),
{"platforms": json.dumps(default_platforms)}
)
def downgrade() -> None:
"""Удаление поля platforms из таблицы dockerfiles"""
op.drop_column('dockerfiles', 'platforms')