Hi all,
I have a db:migrate failure after upgrading. I've posted a pasebin of the
trace here: http://pastebin.com/493zpBcc Here's the gist of it:
– add_index(:parameters, [:reference_id, :name], {:unique=>true})
> rake aborted!
> An error has occurred, this and all later migrations canceled:
>
> PGError: ERROR: could not create unique index
> "index_parameters_on_reference_id_and_name"
> DETAIL: Table contains duplicated values.
> : CREATE UNIQUE INDEX "index_parameters_on_reference_id_and_name" ON
> "parameters" ("reference_id", "name")
>
It looks like I have 12 name, reference_id duplicates. is there a clean
way to clean these out? As far as I can tell in looking at the cases, the
situation occurs when a host parameter overrides a group parameter…
foreman=# select * from ( select name,reference_id, row_number()
over(partition by reference_id, name order by reference_id asc) as row from
parameters) dups where dups.row > 1;
name | reference_id | row
···
-----------------+--------------+----- firewall | 1 | 2 nrpe_ntp | 1 | 2 firewall | 7 | 2 firewall | 16 | 2 firewall | 17 | 2 yum_cron_dotw | 17 | 2 yum_cron_mailto | 17 | 2 yum_template | 17 | 2 yum_update | 17 | 2 firewall | 18 | 2 firewall | 19 | 2 firewall | 21 | 2 (12 rows) foreman=# select * from parameters where reference_id in(1,7,16,17,18,19,21) and name = 'firewall' order by reference_id; id | name | value | reference_id | created_at > updated_at | type | priority -----+----------+-------+--------------+----------------------------+----------------------------+----------------+---------- 61 | firewall | true | 1 | 2013-07-30 15:12:05.205278 | 2013-07-30 15:12:05.205278 | GroupParameter | 3 15 | firewall | false | 1 | 2013-07-15 14:48:53.730826 | 2013-07-15 14:48:53.730826 | HostParameter | 4 173 | firewall | false | 7 | 2013-10-16 17:51:24.445574 | 2013-10-16 17:51:24.445574 | OsParameter | 2 166 | firewall | true | 7 | 2013-10-03 18:41:11.030193 | 2013-10-03 18:41:11.030193 | HostParameter | 4 300 | firewall | false | 16 | 2013-11-13 21:24:23.679679 | 2013-11-13 21:24:23.679679 | HostParameter | 4 184 | firewall | false | 16 | 2013-10-18 18:44:19.610702 | 2013-10-18 18:44:19.610702 | GroupParameter | 3 188 | firewall | false | 17 | 2013-10-18 18:46:43.219681 | 2013-10-18 18:46:43.219681 | GroupParameter | 3 59 | firewall | false | 17 | 2013-07-30 15:00:58.819476 | 2013-07-30 15:00:58.819476 | HostParameter | 4 187 | firewall | false | 18 | 2013-10-18 18:46:28.191101 | 2013-10-18 18:46:28.191101 | GroupParameter | 3 58 | firewall | false | 18 | 2013-07-30 15:00:05.170201 | 2013-07-30 15:00:05.170201 | HostParameter | 4 186 | firewall | false | 19 | 2013-10-18 18:46:16.023781 | 2013-10-18 18:46:16.023781 | GroupParameter | 3 63 | firewall | false | 19 | 2013-07-30 17:13:27.58812 | 2013-07-30 17:13:27.58812 | HostParameter | 4 206 | firewall | false | 21 | 2013-10-31 18:29:50.826137 | 2013-10-31 18:29:50.826137 | GroupParameter | 3 64 | firewall | false | 21 | 2013-07-30 17:20:25.696759 | 2013-07-30 17:20:25.696759 | HostParameter | 4 (14 rows)Any suggestions? Thanks!