'bundle exec rake db:migrate' dauert wegen Kalendermigration lange

      DELETE
        FROM calendar_events ce
      WHERE
        ce.id IN (SELECT DISTINCT(ce3.id) FROM calendar_events ce2
                  LEFT JOIN calendar_events ce3 ON ce3.user_id = ce2.user_id AND ce3.description = ce2.description
                  WHERE ce2.start_date >= (ce3.start_date - INTERVAL '1 days')
                    AND ce2.start_date <= (ce3.start_date + INTERVAL '1 days')
                    AND ce2.timezone IS NOT NULL
                    AND ce3.timezone IS NULL
                    AND ce3.id != ce2.id
                    AND ce2.post_id IS NULL
                    AND ce3.post_id IS NULL
        )

Das sieht also nach mindestens einer O(n^2)-Operation aus, oder? In dieser Tabelle befinden sich 69.724.384 Zeilen, das sieht also nicht nach einer sehr guten Idee aus.

@Sikamikanico. Wenn du das Kalender-Plugin zurückhaben willst, denke ich, das Beste ist, alle Kalenderereignisse zu löschen und neu anzufangen. Das andere, was wir tun könnten, wäre, diese Abfrage auf dem aktiven Server auszuführen und zu sehen, ob sie jemals fertig wird.

Die Grundursache, denke ich, ist ein Fehler im Plugin, der Ereignisse duplizierte, wenn sich die Zeitzone änderte.

Die Tabelle calendar_events ist 11 GB groß:

SELECT pg_size_pretty( pg_total_relation_size('calendar_events') );
  pg_size_pretty
----------------
 11 GB
(1 Zeile)

Hier sind die größten Tabellen:

       relation       | total_size
----------------------+------------
 calendar_events      | 11 GB
 post_timings         | 6884 MB
 posts                | 2292 MB
 user_auth_token_logs | 1240 MB
 user_actions         | 1055 MB
(5 Zeilen)

Nur calendar_events ist eindeutig bizarr.