From ecbb208b5adc2007fe4e458a7991203bbb643d09 Mon Sep 17 00:00:00 2001 From: James Smith Date: Thu, 29 Jun 2023 09:02:26 +0100 Subject: [PATCH] explicitly check both names and slugs for duplication in data migration increase timestamp on migration to allow recovery of previously-broken nightly installs (i.e. mine) --- db/data/20230628194943_make_names_unique.rb | 20 ------------------ db/data/20230628194944_make_names_unique.rb | 23 +++++++++++++++++++++ db/data_schema.rb | 2 +- 3 files changed, 24 insertions(+), 21 deletions(-) delete mode 100644 db/data/20230628194943_make_names_unique.rb create mode 100644 db/data/20230628194944_make_names_unique.rb diff --git a/db/data/20230628194943_make_names_unique.rb b/db/data/20230628194943_make_names_unique.rb deleted file mode 100644 index 2e4291400..000000000 --- a/db/data/20230628194943_make_names_unique.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -class MakeNamesUnique < ActiveRecord::Migration[7.0] - def up - [Creator, Collection].each do |klass| - klass.all.group_by { |x| x.name.downcase }.each_pair do |name, items| - if items.count > 1 - items.slice(1..-1).each do |c| - c.name = "#{c.name} #{SecureRandom.hex(4)}" - c.save! - end - end - end - end - end - - def down - raise ActiveRecord::IrreversibleMigration - end -end diff --git a/db/data/20230628194944_make_names_unique.rb b/db/data/20230628194944_make_names_unique.rb new file mode 100644 index 000000000..c184a0996 --- /dev/null +++ b/db/data/20230628194944_make_names_unique.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class MakeNamesUnique < ActiveRecord::Migration[7.0] + def up + attributes = [:name, :slug] + [Creator, Collection].each do |klass| + attributes.each do |attr| + klass.all.group_by { |x| x.send(attr).downcase }.each_pair do |n, items| + if items.count > 1 + items.slice(1..-1).each do |c| + c.name = "#{c.name} #{SecureRandom.hex(4)}" + c.save! + end + end + end + end + end + end + + def down + raise ActiveRecord::IrreversibleMigration + end +end diff --git a/db/data_schema.rb b/db/data_schema.rb index ce1757b78..e9d80ee73 100644 --- a/db/data_schema.rb +++ b/db/data_schema.rb @@ -1 +1 @@ -DataMigrate::Data.define(version: 20230628194943) +DataMigrate::Data.define(version: 20230628194944)