From 6005fadacaccd27386a7e01d6acc850d6b3bda20 Mon Sep 17 00:00:00 2001 From: Krzysztof Kotlarek Date: Fri, 29 Nov 2019 12:41:42 +1100 Subject: [PATCH] FIX: add a unique index to developers table (#8436) --- ...28222140_add_unique_index_to_developers.rb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 db/migrate/20191128222140_add_unique_index_to_developers.rb diff --git a/db/migrate/20191128222140_add_unique_index_to_developers.rb b/db/migrate/20191128222140_add_unique_index_to_developers.rb new file mode 100644 index 00000000000..d839b157709 --- /dev/null +++ b/db/migrate/20191128222140_add_unique_index_to_developers.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class AddUniqueIndexToDevelopers < ActiveRecord::Migration[6.0] + def up + execute <<~SQL + DELETE FROM developers d1 + USING ( + SELECT MAX(id) as id, user_id + FROM developers + GROUP BY user_id + HAVING COUNT(*) > 1 + ) d2 + WHERE + d1.user_id = d2.user_id AND + d1.id <> d2.id + SQL + + add_index :developers, %i(user_id), unique: true + end + + def down + raise ActiveRecord::IrreversibleMigration + end +end