From 1a92978df4859b87086f2a2a75584d0011459ed9 Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Sun, 2 Aug 2026 18:31:55 +0200 Subject: [PATCH] drop legacy path columns --- ..._drop_legacy_path_columns_from_releases.rb | 29 +++++++++++++++++++ apps/api/db/schema.rb | 6 +--- apps/api/lib/tasks/release_assets.rake | 5 ++++ 3 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 apps/api/db/migrate/20260802000002_drop_legacy_path_columns_from_releases.rb diff --git a/apps/api/db/migrate/20260802000002_drop_legacy_path_columns_from_releases.rb b/apps/api/db/migrate/20260802000002_drop_legacy_path_columns_from_releases.rb new file mode 100644 index 0000000..d7647fa --- /dev/null +++ b/apps/api/db/migrate/20260802000002_drop_legacy_path_columns_from_releases.rb @@ -0,0 +1,29 @@ +class DropLegacyPathColumnsFromReleases < ActiveRecord::Migration[8.1] + COLUMN_KINDS = { + "cartridge_path" => "cartridge", + "source_path" => "source", + "html_folder_path" => "html", + "docs_folder_path" => "docs" + }.freeze + + def up + COLUMN_KINDS.each_key do |column| + remove_column :releases, column + end + end + + def down + COLUMN_KINDS.each_key do |column| + add_column :releases, column, :string + end + + # rollbacknél az adat a release_assets-ből áll vissza, nem veszik el + COLUMN_KINDS.each do |column, kind| + execute <<~SQL.squish + UPDATE releases r + JOIN release_assets ra ON ra.release_id = r.id AND ra.kind = '#{kind}' + SET r.#{column} = ra.path + SQL + end + end +end diff --git a/apps/api/db/schema.rb b/apps/api/db/schema.rb index f14a9de..88353f7 100644 --- a/apps/api/db/schema.rb +++ b/apps/api/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.1].define(version: 2026_08_02_000001) do +ActiveRecord::Schema[8.1].define(version: 2026_08_02_000002) do create_table "admin_users", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| t.datetime "created_at", null: false t.string "email", default: "", null: false @@ -183,13 +183,9 @@ ActiveRecord::Schema[8.1].define(version: 2026_08_02_000001) do end create_table "releases", id: { type: :bigint, unsigned: true }, charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| - t.string "cartridge_path" t.datetime "created_at", precision: 3 t.datetime "deleted_at", precision: 3 - t.string "docs_folder_path" - t.string "html_folder_path" t.bigint "software_id", unsigned: true - t.string "source_path" t.datetime "updated_at", precision: 3 t.string "version", limit: 64 t.boolean "web_playable", default: false diff --git a/apps/api/lib/tasks/release_assets.rake b/apps/api/lib/tasks/release_assets.rake index fe6b4ce..0bc1bd9 100644 --- a/apps/api/lib/tasks/release_assets.rake +++ b/apps/api/lib/tasks/release_assets.rake @@ -1,6 +1,11 @@ namespace :release_assets do desc "Verify that legacy Release path columns match release_assets rows" task verify: :environment do + unless Release.column_names.include?("cartridge_path") + puts "A legacy path oszlopok már törölve vannak (DropLegacyPathColumnsFromReleases lefutott) — nincs mit ellenőrizni." + exit 0 + end + mapping = { "cartridge_path" => "cartridge", "source_path" => "source",