- Добавлена колонка 'Тип' во все таблицы истории сборок - Для push операций отображается registry вместо платформ - Сохранение пользователя при создании push лога - Исправлена ошибка с logger в push_docker_image endpoint - Улучшено отображение истории сборок с визуальными индикаторами
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
"""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')
|