Ripristino del backup non riuscito

Sembra che il tuo vecchio server non sia un’installazione standard. Comunque,… ecco cosa è successo in breve: un indice sul tuo vecchio server si è corrotto nel corso degli anni (questo può accadere dopo aggiornamenti del sistema operativo), quindi due righe identiche sono finite nella tabella incoming_referers. Il backup le copia così come sono, e il nuovo server le rifiuta. Quindi prima risolviamo il problema sul server vecchio, poi creiamo un nuovo backup.

Sul server VECCHIO, apri la console di Rails:

./launcher enter app
rails c

Poi incolla queste righe, una dopo l’altra:

db = ActiveRecord::Base.connection.current_database
DB.exec("DELETE FROM incoming_referers a USING incoming_referers b WHERE a.id > b.id AND a.path = b.path AND a.incoming_domain_id = b.incoming_domain_id")
DB.exec("REINDEX DATABASE #{ActiveRecord::Base.connection.quote_table_name(db)}")

Questo rimuove i duplicati e ricostruisce tutti gli indici (nel caso in cui anche altre tabelle siano interessate).

Se REINDEX termina senza errori, digita exit, crea un nuovo backup sul vecchio server e ripristina quel nuovo file. Se mostra un errore relativo a un’altra tabella, incollalo qui.