ugrás a tartalomhoz

2 drupal 1 adatbázis

eBandee · 2010. Feb. 13. (Szo), 18.10
Üdv!

Csak annyit szeretnék kérdezni, hogy 1 szerveren használhat-e közös adatbázist 2 külön telepített drupal? Esetleg létezik valami féle szinkronizáció?

Illetve, hogy valaki tudna-e esetleg egy linket küldeni, vagy egy rövid leírást erről a megoldásról?

Probléma: Egy szerveren telepítve van 2 drupal, 2 külön adatbázissal, ám mindkettőre van egy-egy olyan mudul, aminek közös adatbázist kellene használnia... Mivel nem értek a drupalhoz, a modult meg nehéz lenne "drupaltalanítani", (és nem is érdemes, mert jól meg van írva!), ezért arra gondoltam hogy replikálom a használt adattáblákat. Megoldható ez? Esetleg van erre valami egyszerűbb megoldás drupalban?

Előre is köszönöm!
 
1

settings.php

ganyecz · 2010. Feb. 13. (Szo), 19.40
1 szerveren használhat-e közös adatbázist 2 külön telepített drupal?

Igen.

Olvasgass bele a sites/default/default.settings.php állományba (lehet át van nevezve settings.php-ra), ebben a fájlban minden infót megtalálsz. Errefelé keresgélj:
/**
 * Database settings:
...
 *   $db_prefix = 'main_';
...
 *   $db_prefix = array(
 *     'default'   => 'main_',
 *     'users'     => 'shared_',
 *     'sessions'  => 'shared_',
 *     'role'      => 'shared_',
 *     'authmap'   => 'shared_',
 *   );
...
 */
$db_url = 'mysql://username:password@localhost/databasename';

Ha ki vannak törölve a kommentek a fájlból, akkor tölts le egy Drupal-t, abban biztosan megtalálod.
2

Telepített drupal esetén?

eBandee · 2010. Feb. 14. (V), 20.40
Ez jó lenne, utána is olvastam... De ha jól értelmeztem ezt telepítés előtt kell szerkeszteni. Nekem egy telepített motor adatbázisából kell bizonyos táblákat használni. Ez úgy is működik? Nem igazán csináltam még ilyet és nem akarom taccsra vágni a táblákat.
3

ezt telepítés előtt kell

ganyecz · 2010. Feb. 14. (V), 21.51
ezt telepítés előtt kell szerkeszteni


Na most ez teljesen mindegy. Nem tudom mi a konkrét probléma a te esetedben, illetve hogy csak közös adatbázist, vagy esetleg közös táblákat is kellene használnia a két Drupal rendszerednek. Szóval tegyük fel, vannak a valami.hu és akarmi.hu honlapjaid, amelyek eddig két adatbázist használtak, viszont most egy adatbázissal kell mindkettőt működtetni.

Ehhez először is kell ugye a közös adatbázis, amelynek a példa kedvért legyen a neve most kozos. Ebbe az adatbázisba kell áthelyezned a valami.hu és akarmi.hu tábláit, ajánlott hogy az egyes oldalakhoz tartozó táblákat nevezd át, lásd el például "valami_" és "akarmi_" előtaggal. Értelem szerűen ugye amennyiben az egyik honlapod eddig is a kozos nevezetű adatbázist használta, annak a tábláit nem kell áthelyezned, de az előtagok megadása a már meglévő táblák esetében is ajánlott.

Aztán van két settings.php állományod, egyik a valami.hu/sites/default, másik az akarmi.hu/sites/default elérési útvonalon. Ezeket a fájlokat nagyjából így kell módosítanod:

valami.hu/sites/default/settings.php
/**
 * Database settings:
 */
$db_prefix = 'valami_';
$db_url = 'mysql://username:password@localhost/kozos';


akarmi.hu/sites/default/settings.php
/**
 * Database settings:
 */
$db_prefix = 'akarmi_';
$db_url = 'mysql://username:password@localhost/kozos';


Ebben az esetben már csak a kozos nevezetű adatbázist fogják használni a honlapjaid, az egyik a "valami_", míg a másik az "akarmi_" előtaggal ellátott táblákat.

Amennyiben ezen kívül azt is szeretnéd, hogy egyes táblákat is közösen használjanak a Drupal rendszereid, akkor tömbként kell megadnod a settings.php fájlokban a $db_prefix változót, a tömb kulcsaiként a megosztani kívánt táblák eredeti, prefix nélküli neveit, a kulcshoz tartozó értékként pedig azt az előtagot, amellyel rendelkezik a közösen használt tábla. Például:

valami.hu/sites/default/settings.php
/**
 * Database settings:
 */
$db_prefix = array(
  'default'   => 'valami_',
  'users'     => 'akarmi_',
  'sessions'  => 'akarmi_',
  'role'      => 'akarmi_',
  'authmap'   => 'akarmi_',
);
$db_url = 'mysql://username:password@localhost/kozos';


A fenti példában az "users", "sessions", "role", "authmap" táblákat közösen használja a valami.hu és akarmi.hu honlapod, míg az összes többi esetben a valami.hu honlap a "default" értékeként megadott "valami_" előtaggal ellátott táblákat.

Ez úgy is működik?


Töröld a cache_ előtagú táblák tartalmát, és amennyiben nincs valamilyen oldalspecifikus egzotikus változó megadva a variables táblában, akkor igen.

Nem igazán csináltam még ilyet és nem akarom taccsra vágni a táblákat.


A két oldalt "offline" teszed, az adatbázisokról mentést csinálsz, mielőtt belekezdenél. :) Aztán csak bátran...