4.16.0: Добавлен выбор цвета для проектов
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 2m9s

This commit is contained in:
poignatov
2026-02-04 17:12:21 +03:00
parent c22e56e68a
commit 479ffb2483
12 changed files with 416 additions and 38 deletions

View File

@@ -0,0 +1,9 @@
-- Migration: Remove color field from projects table
-- Date: 2026-02-02
--
-- This migration removes the color field from projects table.
DROP INDEX IF EXISTS idx_projects_color;
ALTER TABLE projects
DROP COLUMN IF EXISTS color;

View File

@@ -0,0 +1,45 @@
-- Migration: Add color field to projects table
-- Date: 2026-02-02
--
-- This migration adds color field to projects table to allow
-- custom color selection for projects. The field is NOT NULL,
-- and existing projects will be assigned colors from a predefined palette.
-- Добавляем поле color
ALTER TABLE projects
ADD COLUMN color VARCHAR(7) NOT NULL DEFAULT '#3B82F6';
-- Палитра из 30 контрастных цветов (синхронизирована с backend и frontend)
-- Заполняем существующие проекты цветами из палитры
DO $$
DECLARE
colors TEXT[] := ARRAY[
'#EF4444', '#F97316', '#F59E0B', '#EAB308', '#84CC16',
'#22C55E', '#10B981', '#14B8A6', '#06B6D4', '#0EA5E9',
'#3B82F6', '#6366F1', '#8B5CF6', '#A855F7', '#D946EF',
'#EC4899', '#F43F5E', '#DC2626', '#EA580C', '#CA8A04',
'#65A30D', '#16A34A', '#059669', '#0D9488', '#0891B2',
'#0284C7', '#2563EB', '#4F46E5', '#7C3AED', '#9333EA'
];
project_record RECORD;
color_index INTEGER := 0;
BEGIN
-- Обновляем существующие проекты, присваивая им цвета из палитры
FOR project_record IN
SELECT id FROM projects ORDER BY id
LOOP
UPDATE projects
SET color = colors[1 + (color_index % array_length(colors, 1))]
WHERE id = project_record.id;
color_index := color_index + 1;
END LOOP;
END $$;
-- Убираем DEFAULT, так как теперь все проекты имеют цвет
ALTER TABLE projects
ALTER COLUMN color DROP DEFAULT;
CREATE INDEX IF NOT EXISTS idx_projects_color ON projects(color);
COMMENT ON COLUMN projects.color IS 'Project color in HEX format (e.g., #FF5733)';