feat: добавлена пометка типа операции (Build/Push) в истории сборок Dockerfile

- Добавлена колонка 'Тип' во все таблицы истории сборок
- Для push операций отображается registry вместо платформ
- Сохранение пользователя при создании push лога
- Исправлена ошибка с logger в push_docker_image endpoint
- Улучшено отображение истории сборок с визуальными индикаторами
This commit is contained in:
Сергей Антропов
2026-02-15 22:59:02 +03:00
parent 23e1a6037b
commit 1fbf9185a2
232 changed files with 38075 additions and 5 deletions

View File

@@ -0,0 +1,46 @@
"""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')