adm_users und adm_user_data ersetzen bzw. bearbeiten

Alles, was nicht in die anderen Foren passt, kannst du hier loswerden.
Antworten
TurboXXL
Beiträge: 26
Registriert: 5. Sep 2017, 12:13

adm_users und adm_user_data ersetzen bzw. bearbeiten

Beitrag von TurboXXL »

Hallo zusammen,

ich habe folgendes vor: Ich möchte einen größeren Datenbestand in Admidio überführen und evtl. auch wieder exportieren, dann bearbeiten und wieder zurückspielen. Die die Importfunktion finde ich dafür nicht geeignet, da man immer die Bezüge zwischen den Felder manuell festlegen muß (oder kann das irgendwo gespeichert werden?).

Daher habe ich mir die DB Struktur angeschaut und es würde mir völlig ausreichen die adm_users und adm_user_data als SQL aus der Datenbank zu exportieren und wieder importieren zu können. Dazu habe ich bereits ein VBA Makro, welches mir die entsprechende SQL Datei für den Import erzeugt.

Beim Einlesen bekomme ich allerdings den MySQL-Fehler #1215 - Cannot add foreign key constraint. Da allerdings einige dieser Verknüpfungen vorhanden sind, ist jetzt die Frage, kann man das irgendwie umgeben (bin kein MySQL-Experte).

Der SQL-Befehl SET FOREIGN_KEY_CHECKS=0; bringt mich leider nicht weiter, da die Fehlermeldung bestehen bleibt.

Muss man vielleicht die DB in einer bestimmten Reihenfolge importieren? Die Datenverknüpfungen bleiben beim Im- und Export erhalten, es sollen nur in selbst angelegten Profilfeldern Daten extern angepasst werden können.

Auch das komplette Löschen und Neuanlegen der Tabelle per SQL führt nicht zum Erfolg.

Vielleicht haben die Entwickler ja einen Lösungshinweis für mich, um Datensätze in der adm_user und adm_user_data

Vielen Dank im Voraus :-)

Gruß
Turbo
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: adm_users und adm_user_data ersetzen bzw. bearbeiten

Beitrag von XimeX »

Wie genau gehst du beim importieren vor?
Löscht du die Tabelle und legst sie neu an?
Fügst du neue Datensätze ein oder arbeitest du mit UPDATE Statements?
War das die komplette Fehlermeldung oder schreibt er noch was von einer Spalte etc?
TurboXXL
Beiträge: 26
Registriert: 5. Sep 2017, 12:13

Re: adm_users und adm_user_data ersetzen bzw. bearbeiten

Beitrag von TurboXXL »

Hallo XimeX,

ich habe es inzwischen schon auf mehreren Wegen probiert.

Jetzt habe ich es mal probiert, die adm_announcements, adm_auto_login, adm_members, adm_users und adm_user_data zu löschen, um diese dann neu zu erstellen.

Die ersten drei Tabellen werden auch ohne Probleme wieder erstellt, bei der adm_users bekomme ich dann im SQL-Fenster diesen Hinweis:
SQL-Befehl:

CREATE TABLE `adm_users` (
`usr_id` int(10) UNSIGNED NOT NULL,
`usr_login_name` varchar(35) COLLATE utf8_unicode_ci DEFAULT NULL,
`usr_password` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`usr_new_password` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`usr_photo` blob,
`usr_text` text COLLATE utf8_unicode_ci,
`usr_activation_code` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
`usr_last_login` timestamp NULL DEFAULT NULL,
`usr_actual_login` timestamp NULL DEFAULT NULL,
`usr_number_login` int(11) NOT NULL DEFAULT '0',
`usr_date_invalid` timestamp NULL DEFAULT NULL,
`usr_number_invalid` smallint(6) NOT NULL DEFAULT '0',
`usr_usr_id_create` int(10) UNSIGNED DEFAULT NULL,
`usr_timestamp_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`usr_usr_id_change` int(10) UNSIGNED DEFAULT NULL,
`usr_timestamp_change` timestamp NULL DEFAULT NULL,
`usr_valid` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicod[...]

MySQL meldet: Dokumentation
#1215 - Cannot add foreign key constraint

Mehr zeigt phpAdmin nicht an.

Bei dem Versuch ging es erstmal nur darum, die exportierten Daten ohne Änderung wieder einlesen zu können.

Bisher habe ich es nur mit dem Löschen der Datensätze bzw. der ganzen Tabelle probiert. Mit UPDATE habe ich es noch nicht versucht, mache ich aber mal gleich als Nächstes.

Sonst muss ich mir mal die IMPORT-Funktion von Admidio anschauen, denn dort klappt es ja mit dem Übernehmen von csv-Dateien. Auf die Idee bin ich auch erst gerade gekommen. Ich hatte in meinem Leichtsinn gedacht, ich könnte einfach die Daten per SQL-Statement aus- und einlesen :), da ich die Daten gerne immer noch in einer externen Anwendung bearbeiten möchte.
Admidio dient dann der Präsentation der Mitgliederdaten online.

Und wie gesagt, für diese Art von Daten-Operation ist die DB dann nicht öffentlich zugänglich und es werden auch keine Datensätze hinzugefügt oder gelöscht.

Allerdings kann ich bei der Erstbefüllung mit Daten auch jedem Mitglied gleich ein eigenes Passwort und Benutzernamen zuweisen und muss nicht 500 Datensätze per Hand editieren.

Mit den Tabellen adm_members adm_users und adm_user_data habe ich ja den ganzen Userbreich eigentlich im Griff.

Mit VBA bin ich da wesentlich schneller und eleganter, dass kann ich wenigstens :)

Ich will hier nicht zu viel versprechen, aber wenn es mir gelingt, kann ich das Excelmakro gerne mal zur Verfügung stellen.

Vielen Dank für die Aufmerksamkeit.

Gruß
Turbo
Antworten