mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Add unique index to enterprise permalink
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
class AddUniqueIndexToEnterprisePermalink < ActiveRecord::Migration
|
||||
def change
|
||||
duplicates = Enterprise.group(:permalink).having('count(*) > 1').pluck(:permalink)
|
||||
duplicates.each { |p| resolve_permalink(p) };
|
||||
add_index :enterprises, :permalink, :unique => true
|
||||
end
|
||||
|
||||
def resolve_permalink(permalink)
|
||||
conflicting = Enterprise.where(permalink: permalink)
|
||||
while conflicting.size > 1 do
|
||||
enterprise = conflicting.pop
|
||||
enterprise.permalink = nil
|
||||
enterprise.save
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -11,7 +11,7 @@
|
||||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20150527004427) do
|
||||
ActiveRecord::Schema.define(:version => 20150603001843) do
|
||||
|
||||
create_table "adjustment_metadata", :force => true do |t|
|
||||
t.integer "adjustment_id"
|
||||
@@ -323,6 +323,7 @@ ActiveRecord::Schema.define(:version => 20150527004427) do
|
||||
add_index "enterprises", ["confirmation_token"], :name => "index_enterprises_on_confirmation_token", :unique => true
|
||||
add_index "enterprises", ["is_primary_producer", "sells"], :name => "index_enterprises_on_is_primary_producer_and_sells"
|
||||
add_index "enterprises", ["owner_id"], :name => "index_enterprises_on_owner_id"
|
||||
add_index "enterprises", ["permalink"], :name => "index_enterprises_on_permalink", :unique => true
|
||||
add_index "enterprises", ["sells"], :name => "index_enterprises_on_sells"
|
||||
|
||||
create_table "exchange_fees", :force => true do |t|
|
||||
|
||||
Reference in New Issue
Block a user