mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 20:33:38 +08:00
Poll migration is not idempotent (#7964)
The migration script is not idempotent due to database constrains on the poll related objects, namely: polls: index_polls_on_post_id_and_name (post_id,name) UNIQUE poll_options: index_poll_options_on_poll_id_and_digest (poll_id,digest) UNIQUE poll_votes: index_poll_votes_on_poll_id_and_poll_option_id_and_user_id (poll_id,poll_option_id,user_id) UNIQUE This change skips a particular poll migration if it's already found on the db.
This commit is contained in:
parent
7c83d2eeb2
commit
b500ef77d7
|
@ -95,6 +95,8 @@ class MigratePollsData < ActiveRecord::Migration[5.2]
|
|||
step = poll["step"].to_i.clamp(0, max)
|
||||
anonymous_voters = poll["anonymous_voters"].to_i.clamp(0, PG_INTEGER_MAX)
|
||||
|
||||
next if Poll.exists?(post_id: r.post_id, name: escape(name))
|
||||
|
||||
poll_id = execute(<<~SQL
|
||||
INSERT INTO polls (
|
||||
post_id,
|
||||
|
|
Loading…
Reference in New Issue
Block a user