a-schild / churchtools-wp-calendarsync

Synchronise churchtools calendar with wordpress events manager
GNU General Public License v2.0
1 stars 1 forks source link

Duplikate bei wiederkehrenden Veranstaltungen #4

Closed matthias6 closed 10 months ago

matthias6 commented 10 months ago

Die Installation hat geklappt. Allerdings haben ein "Problem" mit wiederkehrenden Veranstaltungen: image Da wurden ein Haufen Duplikate erstellt, welche allerdings nur im Events-Manager auftauchen und nicht auf der Homepage: https://immanuel-online.de/veranstaltungen/

a-schild commented 10 months ago

Spannend ist, dass die alle auf "Ausstehend" kommen. Ich vermute dass hier beim Speichern, oder Kategorie zuweisen im Eventmanager etwas fehlschlägt. Oder ist ev. mit der Location ein Problem?

Im Log siehst du nicht's spezielles? Die Merhfachen Einträge passieren, wenn der event nicht gespeichert werden kann, und dann somit in der Mappingtabelle auch kein Eintrag gemacht wird. Dann meint der Importer, dass es den Event noch nicht gibt.

matthias6 commented 10 months ago

Folgende Error Logs kommen da an:

[07-Nov-2023 17:55:04 UTC] WordPress database error Table 'immanuel_wp2017.wp17ctwpsync_mapping' doesn't exist for query SHOW COLUMNS FROM `wp17ctwpsync_mapping` LIKE 'ct_repeating' made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, ctwpsync_initplugin
[07-Nov-2023 17:55:04 UTC] WordPress database error Table 'immanuel_wp2017.wp17ctwpsync_mapping' doesn't exist for query alter table `wp17ctwpsync_mapping` ADD COLUMN `ct_repeating` TINYINT NULL DEFAULT '0'; made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, ctwpsync_initplugin
[07-Nov-2023 17:55:04 UTC] WordPress database error Table 'immanuel_wp2017.wp17ctwpsync_mapping' doesn't exist for query alter table `wp17ctwpsync_mapping` DROP INDEX `ct_id`; made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, ctwpsync_initplugin
[07-Nov-2023 17:55:04 UTC] WordPress database error Table 'immanuel_wp2017.wp17ctwpsync_mapping' doesn't exist for query alter table `wp17ctwpsync_mapping` ADD INDEX `ct_id` (`ct_id`); made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, ctwpsync_initplugin
[07-Nov-2023 17:55:06 UTC] WordPress database error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mediumin(9) NOT NULL,
            wp_id mediumint(9) NOT NULL,
            ct_im' at line 4 for query CREATE TABLE IF NOT EXISTS wp17ctwpsync_mapping(
            id mediumint(9) NOT NULL AUTO_INCREMENT,
            ct_id mediumint(9) NOT NULL,
            ct_repeating mediumin(9) NOT NULL,
            wp_id mediumint(9) NOT NULL,
            ct_image_id mediumint(9) NOT NULL,
            wp_image_id mediumint(9) NOT NULL,
            ct_flyer_id mediumint(9) NOT NULL,
            wp_flyer_id mediumint(9) NOT NULL,
            last_seen datetime NOT NULL,
            event_start datetime NOT NULL,
            event_end datetime NOT NULL,
            UNIQUE KEY id (id),
            UNIQUE KEY ct_id (ct_id)
            ) made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, ctwpsync_initplugin, dbDelta
matthias6 commented 10 months ago

ich würd mal versuchen, alle Events zu löschen. Könnte das was helfen?

matthias6 commented 10 months ago

Kategorie zuweisen glaub ich schlägt fehl. Alle Kategorien waren der ersten Kategorie "Gemeinschaft" zugeordnet. Hier meine Einstellungen: image

Hatte die Kategorien zuvor in Event Manager angelegt. War das falsch? Einige Kategorien haben ein Leerzeichen im Titel (z.B. Kinder und Familien) - ist das problematisch?

a-schild commented 10 months ago

Nein,

die Mappingtabelle fehlt. Das ertsellen der Tabelle schlägt wegen einem SQL Syntaxfehler fehl

ct_repeating mediumin(9) NOT NULL, müsste ct_repeating mediumint(9) NOT NULL, sein

a-schild commented 10 months ago

Sollte im neuen Release v1.0.3 gelöst sein. Kannst du das bitte austesten? (Und vorher all Einträge des Syncowners löschen)

Bei den Kategorien werden die bestehenden weiterverwendet, auch Leerzeichen sollten funktionieren. Wenn eine Kategorie fehlt, dann wird die automatisch erstellt.

matthias6 commented 10 months ago

Guten Morgen,

ich bekomme nun keine Fehlermeldungen mehr im Wordpress Log. Allerdings funktioniert die Erstellung der Kategorien nicht. Die sind leer.

Mit jedem Synchronisierungsvorgang wird immer noch ein Duplikat erstellt (habe nur die nächsten 7 Tage synchronisiert): image

Durchstarten ist ein Serientermin - LPA jedoch auch und da gibts keine Duplikate

a-schild commented 10 months ago

Siehst du die neue Tabelle ....ctwpsync_mappingin deiner Datenbank?

Da sollten diese Felder vorhanden sein

id mediumint(9) NOT NULL AUTO_INCREMENT,
ct_id mediumint(9) NOT NULL,
ct_repeating mediumint(9) NOT NULL,
wp_id mediumint(9) NOT NULL,
ct_image_id mediumint(9) NOT NULL,
wp_image_id mediumint(9) NOT NULL,
ct_flyer_id mediumint(9) NOT NULL,
wp_flyer_id mediumint(9) NOT NULL,
last_seen datetime NOT NULL,
event_start datetime NOT NULL,
event_end datetime NOT NULL,
UNIQUE KEY id (id),
UNIQUE KEY ct_id (ct_id)
matthias6 commented 10 months ago

image Hier der Screenshot aus der Datenbank.

in der Log Datei trat dieser Fehler auf: [08-Nov-2023 06:43:57 UTC] WordPress database error Column 'ct_image_id' cannot be null for query INSERT INTO wp17ctwpsync_mapping (ct_id, wp_id, ct_image_id, last_seen, event_start, event_end, ct_repeating) VALUES ('4053', '14996', NULL, '2023-11-08 06:43:57', '2023-11-15T18:00:00Z', '2023-11-15T20:00:00Z', '1') made by do_action_ref_array('ctwpsync_hourly_event'), WP_Hook->do_action, WP_Hook->apply_filters, do_this_ctwpsync_hourly, do_action('ctwpsync_includeChurchcalSync'), WP_Hook->do_action, WP_Hook->apply_filters, ctwpsync_includeChurchcalSync, include('/plugins/churchtools-wp-calendarsync/churchtools-dosync.php'), processCalendarEntry

a-schild commented 10 months ago

Ah,

die letzten 5 Felder aus dem Screenshot müssen "Erlaube NULL" gesetzt haben.

grafik

a-schild commented 10 months ago

v1.0.4 sollte das Problem lösen. Bitte die Tabelle in der DB komplett löschen

matthias6 commented 10 months ago

prima. Es werden nun keine Duplikate mehr erzeugt.

matthias6 commented 10 months ago

Jetzt hab ich doch wieder Duplikate. Bei jedem Syncvorgang werden grad 2 wiederkehrende Events neu erstellt: hier der output aus dem Debug-Log vom Plugin: DBG: Caption: LPA StartDate: 2023-11-22T18:00:00Z EndDate: 2023-11-22T20:00:00Z Is allday: false Is repeating DBG: Found mapping for ct id: 4050 so already synched in the past DBG: Event status in wordpress 1 DBG: StartDate: 2023-11-22 DBG: StartTime: 19:00:00 INF: Saved ct event id: 4050 WP event ID 15673 post id: 26244 result: 1 serialized: b:1; DBG: Found category by calendar ID Jugend DBG: Found matching wp category: Jugend wp: 626 DBG: Caption: Immanuel Zwerge - Play&Pray StartDate: 2023-11-23T14:30:00Z EndDate: 2023-11-23T16:00:00Z Is allday: false Is repeating DBG: No mapping for event 4269 found, so create a new one DBG: Location found: Gemeinschaft Immanuel Ravensburg 88214 Ravensburg DBG: StartDate: 2023-11-23 DBG: StartTime: 15:30:00 DBG: Found image in CT: https://immanuel.church.tools/?q=public/filedownload&id=6381&filename=06395645b940efb68d6854445f7ff32528b61cc3ba642dd02347fc06945acdb6 filename: Beamerfolie Zwerge .png INF: Saved ct event id: 4269 WP event ID 15678 post id: 26254 result: 1 serialized: b:1; DBG: Result of fileupload :a:4:{s:4:"file";s:83:"/home/immanuel/public_html/wp/wp-content/uploads/2023/11/Beamerfolie-Zwerge-1-4.png";s:3:"url";s:80:"https://immanuel-online.de/wp-content/uploads/2023/11/Beamerfolie-Zwerge-1-4.png";s:4:"type";s:9:"image/png";s:5:"error";b:0;} DBG: Attached image Beamerfolie Zwerge .png from https://immanuel.church.tools/?q=public/filedownload&id=6381&filename=06395645b940efb68d6854445f7ff32528b61cc3ba642dd02347fc06945acdb6 as attachement 26255 DBG: Found category by calendar ID Kinder und Familien DBG: Found matching wp category: Kinder und Familien wp: 625 DBG: Caption: Immanuel Kids/Juniors StartDate: 2023-11-23T16:30:00Z EndDate: 2023-11-23T18:30:00Z Is allday: false Is repeating DBG: No mapping for event 4275 found, so create a new one DBG: Location found: Gemeinschaft Immanuel Ravensburg 88214 Ravensburg DE DBG: StartDate: 2023-11-23 DBG: StartTime: 17:30:00 DBG: Found image in CT: https://immanuel.church.tools/?q=public/filedownload&id=6390&filename=d64b4e789c9f61a6696b9093954a5da0417f54712efdad2e0374aaa8530c86f9 filename: Beamer Juniors&Kids.png INF: Saved ct event id: 4275 WP event ID 15679 post id: 26256 result: 1 serialized: b:1; DBG: Result of fileupload :a:4:{s:4:"file";s:81:"/home/immanuel/public_html/wp/wp-content/uploads/2023/11/Beamer-JuniorsKids-4.png";s:3:"url";s:78:"https://immanuel-online.de/wp-content/uploads/2023/11/Beamer-JuniorsKids-4.png";s:4:"type";s:9:"image/png";s:5:"error";b:0;} DBG: Attached image Beamer Juniors&Kids.png from https://immanuel.church.tools/?q=public/filedownload&id=6390&filename=d64b4e789c9f61a6696b9093954a5da0417f54712efdad2e0374aaa8530c86f9 as attachement 26257 DBG: Found category by calendar ID Kinder und Familien DBG: Found matching wp category: Kinder und Familien wp: 625 INF: End sync cycle 2023-11-10 12:08:43

vor dem sync sah die Tabelle allerdings so aus: image sollte also eigentlich einen mapping eintrag finden

ich krieg also wieder Duplikate: image

im Wordpress error-log ist nichts drin.

a-schild commented 10 months ago

Gefunden...

Der erste Eintrag aus den Wiederholungen gab kein Problem, aber alle Folgeeinträge wurden dupliziert. Bitte entweder die Tabelle nochmals löschen und die v1.0.6 verwenden, oder auf der Tabelle die unique constraint auf der Spalte ct_id entfernen.

Ich hätte das auch mal mit dem kompletten create table durchtesten sollen und nicht nur mit den änderungen dazu. Und natürlich im code kontrollieren ob das insert in die DB erfolgreich war

matthias6 commented 10 months ago

Prima. Läuft jetzt.