From 4eb58fc8ad00bac6ba2fead5e0a549d799eee016 Mon Sep 17 00:00:00 2001 From: Alexey Berezhok Date: Thu, 25 Dec 2025 23:32:53 +0300 Subject: [PATCH] Fixed project deletion errors --- classes/db.rb | 14 +++++++++++++- classes/projects.rb | 4 +++- db/migrations/202511140000000_create_queue.rb | 6 ++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/classes/db.rb b/classes/db.rb index b15bb45..0f52a9b 100644 --- a/classes/db.rb +++ b/classes/db.rb @@ -354,15 +354,27 @@ class DBase end def delete_project(prj_id) + result = ProjectsProjects.where(proj_id_repository: prj_id.to_i) + count = 0 + result.each do |item| + count = count + 1 + end + return 1 if count > 0 ReposProjects.where(proj_id: prj_id.to_i).delete ProjectsReposSpec.where(proj_id: prj_id.to_i).delete builds = BuildTask.where(proj_id: prj_id.to_i) builds.each do |item| rpms = BuildRpms.where(build_id: item[:id]) - Rpms.where(id: rpms[:rpm_id]).delete + rpms.each do |rpm| + rpm_id_t = rpm[:rpm_id] + BuildRpms.where(build_id: item[:id], rpm_id: rpm_id_t).delete + Rpms.where(id: rpm_id_t).delete + end end BuildTask.where(proj_id: prj_id.to_i).delete + ProjectsProjects.where(proj_id: prj_id.to_i).delete Projects.where(id: prj_id.to_i).delete + 0 end def projects_with_current_as_link(prj_id) diff --git a/classes/projects.rb b/classes/projects.rb index 4c37842..1e72889 100644 --- a/classes/projects.rb +++ b/classes/projects.rb @@ -373,7 +373,9 @@ class ProjectsActions if linked.nil? || linked.length == 0 proj_path = get_project_path(prj_id) FileUtils.rm_rf(proj_path, secure: true) - @db.delete_project(prj_id) + if @db.delete_project(prj_id) != 0 + @error = "На текущий проект ссылаются другие проекты. Удаление запрещено" + end else @error = "На текущий проект ссылаются другие проекты. Удаление запрещено" end diff --git a/db/migrations/202511140000000_create_queue.rb b/db/migrations/202511140000000_create_queue.rb index e69de29..9bd47cb 100644 --- a/db/migrations/202511140000000_create_queue.rb +++ b/db/migrations/202511140000000_create_queue.rb @@ -0,0 +1,6 @@ +require "sequel" + +Sequel.migration do + change do + end +end \ No newline at end of file