Account sync

am 19.12.2011 - 16:58 Uhr in
Hallo Spezialisten, ich weiß nicht genau, ob ich in der richtigen Kategorie bin.
Mein Problem:
Habe eine Drupalsite (A), auf der sich bereits mehr als 100 User brav registriert haben. Jetzt habe ich eine neue Drupalsite (B) erstellt mit völlig anderer URL. Die bereits registrierten User von Site A sollen sich nicht extra nochmals auf Site B registrieren müssen - dies sollte automatisch funktionieren.
OpenID möchte ich nicht verwenden, da jeder User geprüft werden muss. Für eine Multisite-Installation ist es vermutlich zu spät, da beide Sites auf verschiedenen Domains schon aufgebaut sind. Wie bekomme ich nun die Accounts synchronisiert? Das Modul "Account Sync" habe ich gefunden, komme aber damit nicht klar. Würde mich über Hilfe sehr freuen.
- Anmelden oder Registrieren um Kommentare zu schreiben
Wenn beide Seiten mit der
am 20.12.2011 - 11:21 Uhr
Wenn beide Seiten mit der selben Drupal-Version laufen, kannst du für beide Seiten die gleiche Datenbank verwenden.
Schau mal unter sites/default/default.settings.php. Dort ist der db_prefix beschrieben.
Du könntest also z.B. deine alte Seite ohne db_prefix weiterlaufen lassen und für die neue die gleiche Datenbank, aber mit
db_prefix verwenden. Und für die users Tabelle verwendest auch für die neue Seite keinen Prefix.
Damit verwenden beide Sites dieselben Benutzerdaten, kommen sich aber ansonsten nicht in die Quere.
Vielen Dank für den Tipp. Ich
am 20.12.2011 - 11:32 Uhr
Vielen Dank für den Tipp. Ich werde es mal versuchen und vorher lieber Sicherungen ziehen ;-). Falls es nicht hinhaut werde ich mich nochmals melden. Herzlichen Dank! Bin auch für weitere Vorschläge offen.
Nachfrage
am 27.12.2011 - 12:20 Uhr
Habe ich das richtig verstanden (bin mit Datenbanken leider nicht so fit...)?:
Also, die Einträge sind bei mir nicht in der default.settings.php, sondern in der settings.php. Mache ich die Änderungen dann bestimmt in der settings.php, oder?
setting.php der Hauptseite (mit registrierten Benutzern):
$db_url = 'mysqli://meinusername:passwort@localhost/datenbankname'; (lasse ich so stehen, natürlich mit den richtigen Werten)
$db_prefix = ''; (lasse ich leer)
settings.php der zweiten Seite:
$db_url = 'mysqli://meinusername:passwort@localhost/datenbankname'; (lasse ich die originale DB so stehen, oder gebe ich hier die Daten der ersten DB ein?)
$db_prefix = ''; (was genau muss ich hier ändern? _prefix = 'users'?)
Wäre für eine Antwort sehr dankbar :-)
Die settings.php wird beim
am 29.12.2011 - 14:42 Uhr
Die settings.php wird beim Installieren der Site als Kopie von default.settings.php erstellt.
Bearbeiten tust du dann die settings.php, das ist richtig.
Die settings.php der Hauptseite lässt du am besten in Ruhe (ohne prefix).
In die settings.php der zweiten Site dann die db_url der Hauptseite eintragen:
$db_url = 'mysqli://meinusername:passwort@localhost/datenbankname';
Und mit dem Prefix "default" erstmal alle Tabellen mit Prefix versehen und dann NUR die users Tabelle OHNE Prefix laufenlassen.
Dadurch hast du in der DB (von der Hauptseite) alle Tabellen ausser users doppelt drin, d.h. einmal ohne Prefix und einmal mit 'new_' Prefix.
$db_prefix = array(
'default' => 'new_',
'users' => '',
Damit das funktioniert, muss natürlich die zweite Site Zugriff auf die Datenbank der Ersten haben. Wenn beide auf dem selben Server laufen, sollte das normalerweise kein Problem sein.
ABER: Du müsstest die Daten von der zweiten Datenbank auf die erste übernehmen und dabei den Prefix "reinmogeln". Das ist mit einem SQL Dump und einem Texteditor machbar, aber evt. aufwendig.
Wenn du nicht viele Daten draufhast, die du benötigst, wäre es evt. einfacher die 2. Site neu zu installieren (nach der Änderung der settings.php). Dann müsstest du eben den Content dort wieder eingeben.
Mach auf jeden Fall ein Backup der Datenbanken, bevor du damit anfängst.
Wenn das dann geklappt hat, wird die DB der zweiten Site nicht mehr benötigt.