Feiertage 2010-2035

Started by Louis, March 19, 2023, 01:21:54 PM

Previous topic - Next topic

Louis

Die grundsätzliche Anleitung zum Import findet sich u.a. hier, allerdings fehlen da ein paar Kleinigkeiten:

  • wenn dein Forum nicht "smf_" als Tabellenpräfix nutzt muss das vorher in der Datei geändert werden
  • die Datei enthält Feiertage 2010-2035 nach Jahren sortiert; wer schon Feiertage bis 2022 in seinem Forum hat, sollte die entsprechenden Zeilen vor dem Upload aus der Datei löschen, sonst gibt es doppelte Einträge.

Ich benutze die Datei mit 2.1.3, sollte aber eigentlich auch mit 2.0 funktionieren.
It is your mind that creates this world (Buddha)

peter_mein

Da stimmt aber was nicht in der Text Datei.
Was soll das für ein Datum sein 1004-01-01 ?
Und der Value Wert muss durchnummeriert sein sonst
lässt es sich nicht importieren. Bricht dann mit Fehlermeldung
ab.

Louis

Sorry, war länger nicht mehr hier, deswegen erst jetzt eine Antwort.
Bzw erstmal eine Gegenfrage: hast du das ausprobiert oder meinst du das nur?

"1004" ist sozusagen das Dummy-Jahr für alle wiederkehrenden Termine mit gleichem Datum (wie man durch einen Blick in die eigene SMF-Datenbank recht schnell erkennen kann). Es steht dir natürlich frei, Feiertage wie Neujahr ausdrücklich für jedes Jahr anzulegen. Ist aber nicht nötig.

Und solange die Spalte id_holiday mit AUTO_INCREMENT angelegt ist (SMF Standard), muss da kein expliziter Wert vorgegeben werden. Sogar im Gegenteil: wenn du explizite Werte vorgibst muss die komplette Tabelle vor dem Import geleert werden, um doppelte Schlüsselwerte zu verhindern. Wenn due auf auto_increment vertraust, macht die DB das ganz automatisch richtig und du kannst deine alten Einträge beibehalten.
It is your mind that creates this world (Buddha)

peter_mein

Wenn SMF neu installiert wird dann werden auch Kalendereinträge mit
installiert. Diese sind in der Datenbank durchnummeriert und nicht mit AUTO_INCREMENT
versehen. Zumindest nicht die Spalte id_Holiday. Wenn ich die Text Datei, sowie in der Anleitung
beschrieben importieren will geht es nur wenn ich die IDs ändere. Oder ich habe was
übersehen.

Louis

Sorry, aber du liegst wieder bzw immer noch falsch.
Ein Blick in das aktuelle Installationspaket (install_2-1_mysql.sql) zeigt, wie die Tabelle von SMF angelegt wird:
#
# Table structure for table `calendar_holidays`
#

CREATE TABLE {$db_prefix}calendar_holidays (
    id_holiday SMALLINT UNSIGNED AUTO_INCREMENT,
    event_date date NOT NULL DEFAULT '1004-01-01',
    title VARCHAR(255) NOT NULL DEFAULT '',
    PRIMARY KEY (id_holiday),
    INDEX idx_event_date (event_date)
) ENGINE={$engine};
:o
It is your mind that creates this world (Buddha)

peter_mein

Mag ja sein das SMF dies so anlegt. Nur wie schon geschrieben lässt sich
die angehängte Datei so nicht in die Datenbank importieren. Probiere es
doch einfach aus dann siehst du es. Ohne die Änderung die ich beschrieben habe geht
es mit dem Importieren nicht. Zumindest nicht so wie es beschrieben wurde.
Wenn es anders geht dann beschreibe es und andere können es dann nachmachen.

 

Louis

Du merkst schon, dass du nicht so ganz glaubwürdig wirkst, oder?
Quote from: peter_mein on June 06, 2023, 08:30:51 AMWenn SMF neu installiert wird dann werden auch Kalendereinträge mit installiert. Diese sind in der Datenbank durchnummeriert und nicht mit AUTO_INCREMENT versehen. Zumindest nicht die Spalte id_Holiday.
Quote from: peter_mein on June 07, 2023, 07:34:34 AMMag ja sein das SMF dies so anlegt.

Aber egal, das gehört hier nicht zum Thema.

Tatsächlich hast du in der Sache Recht, die Datei verträgt sich so wie oben gepostet nicht mit dem DB Import. Die Lösung ist allerdings dank AUTO_INCREMENT noch einfacher als von dir beschrieben: einfach die Spalte id_holiday komplett ignorieren und von der DB füllen lassen.
Aus
INSERT INTO `smf_calendar_holidays`(`id_holiday`, `event_date`, `title`) VALUES(0, '1004-01-01', 'Neujahr'); wird also
INSERT INTO `smf_calendar_holidays`(`event_date`, `title`) VALUES('1004-01-01', 'Neujahr'); Korrigierte Version 2 ist angehängt, oben kann ich leider nichts mehr ändern.

Kurzanleitung
(gerade eben auf einer frischen Installation von SMF 2.1.3 ausprobiert):
  • wenn die Installation nicht das Standard-Präfix smf_ benutzt, müssen in der Datei erstmal alle "smf_" durch das richtige Präfix ersetzt werden (Datei wieder speichern nicht vergessen)
  • in phpMyAdmin einloggen
  • die Tabelle ***_calendar_holidays auswählen.
  • ggf schon eingetragene Feiertage entweder aus der Datei oder aus der Tabelle löschen, sonst gibt's Duplikate
  • in phpMyAdmin auf den Reiter "Importieren", die Datei auswählen und ganz unten "Importieren"
  • Einen Moment später sollte die Erfolgsmeldung erscheinen:
    "Der Import wurde erfolgreich abgeschlossen, 274 Abfragen wurden ausgeführt. (feiertage_DE_SMF2.1.3_v2.sql.txt)"
It is your mind that creates this world (Buddha)

peter_mein

Hättest du direkt nach meinem ersten Posting die Datei überprüft,
hätte ich mir die ganzen Postings ersparen können. Und was soll der blöde
Hinweis, wie SMF die Daten anlegt. Nicht jeder beherrscht HTML code und weis dann
wie man was ändern muss. Nun läuft es ja richtig.
Zum Schluss noch ein Hinweis. Wenn die Datei importiert wird, meldet die Datenbank
zwei Hinweise das was fehlt. Diese können aber in diesem Falle ignoriert werden.
Es wird alles importiert und läuft auch richtig in SMF.
Diesen Hinweis hättest du auch geben können oder kommt der bei dir nicht?
Nun ist das Problem ja gelöst und bis zum Jahr 2035 haben wir jetzt erst einmal ruhe.


Louis

Quote from: peter_mein on June 08, 2023, 11:07:21 AMHättest du direkt nach meinem ersten Posting die Datei überprüft, hätte ich mir die ganzen Postings ersparen können.
Hättest du meine allererste Frage gleich beantwortet wäre das vermutlich einer der nächsten Schritte gewesen.
QuoteUnd was soll der blöde Hinweis, wie SMF die Daten anlegt.
Das war die Antwort auf deine Behauptung, die Einträge müssten nummeriert sein.
QuoteWenn die Datei importiert wird, meldet die Datenbank zwei Hinweise das was fehlt.
Was genau wird da angemeckert? Ich hatte auf einer leeren Neuinstallation keine Fehlermeldungen beim Import...

[OT]Warum haben deine Posts eigentlich immer so komische Zeilenumbrüche?
It is your mind that creates this world (Buddha)

peter_mein

Die Frage ist in meinem zweiten Posting beantwortet worden. Was soll daran komisch sein? Ich kann natürlich wie jetzt alles hintereinanderschreiben. Aber es gibt auch Foren da fängt man dann an zu scrollen wenn man den Editor voll ausnutzt. Besonders wenn die Software nicht für Mobilgeräte optimiert wurde. Oder die Schrift ist dann so klein das man nichts mehr lesen kann und zoomen muß. Da gewöhnt man sich dann an, den Editor nicht voll zu benutzen. Bei dieser Software ist das zum Glück nicht der Fall.
Ich habe im Anhang mal den Fehler hochgeladen. Wie gesagt es läuft alles richtig. Die Daten werden richtig importiert und auch in SMF richtig angezeigt. 

Louis

Hast du den Inhalt der Datei kopiert und als SQL eingefügt oder hast du die ganze Datei importiert (s. Schritt 5 in #6)?

Es sieht mir nach einem Kopierfehler aus, als wären beim Markieren die ersten beiden Buchstaben nicht mitgenommen worden - in der Datei sind sie aber auf jeden Fall drin.
It is your mind that creates this world (Buddha)

peter_mein

Ich habe die Datei genommen und einfach importiert.
Also so wie es im Artikel beschrieben wurde.

m4z

Welche Datenbank, -version und welches Encoding verwendet ihr beide?
"Faith is what you have in things that don't exist."
--Homer Simpson

Es gibt hier im Forum ein deutsches Support-Board!

Louis

MariaDB 10.10, utf8mb4_unicode_ci
It is your mind that creates this world (Buddha)

Advertisement: