it-swarm-eu.dev

Jak migrovat z testovacího prostředí do produkčního prostředí?

Migrace je z místního prostředí do produkčního prostředí. Produkční prostředí již nějakou dobu běží a vytvořilo spoustu článků.

Abych mohl na svůj web přidat nové věci, přidal jsem vlastní motiv a nainstaloval CCK, Views a další moduly do mého místního testovacího prostředí. Jak je nyní dokončeno místní testovací prostředí, jak jej přenesu do produkčního prostředí, aniž bych zničil obsah jeho databáze?

46
enjoylife

Toto je netriviální problém, pro který téměř každý má jinou odpověď: neexistuje kanonický způsobDrupal, jak zvládnout inscenace a tlačit na produkci. Dries Buytaert, chlap, který provozuje show Drupal, se z ní stal jednou z klíčové iniciativy Drupal 8 . Drupal 7 byl právě propuštěn, takže to bude chvíli trvat, než to přinese nějaké ovoce.

Tento problém lze rozdělit na dva samostatné problémy:

  • Konfigurace pracovní fáze (proměnné, typy obsahu, pole, zobrazení atd.)
  • Obsah představení (uzly, uživatelé atd.)

První z nich může být většinou zpracován modulem Features , který převezme konfiguraci vašeho webu a změní jej na modul, který můžete přidat do instalace Drupal: tímto způsobem můžete přidat do systému pro správu verzí a nemusíte se obávat, že bude při migraci vašeho obsahu odfouknut.

Ten je opravdu ošidný, protože na aktivním webu je pravděpodobné, že se obsah změní ve výrobě i poté, co provedete počáteční synchronizaci s vývojovým prostředím. Tím se zabrání velkoobjemové výměně obsahu během inscenace, jako to můžete s konfigurací.

Drupal navíc nepoužívá univerzálně jedinečné identifikátory (UUID) pro obsah: pokaždé, když je přidán uzel nebo uživatel, ID se zvyšuje o jeden. To, co může být uzlem 45 na vašem vývojovém webu, tedy může být uzel 90 na vašem produkčním webu.

Bohužel k tomu nemám skvělé řešení: inscenovaný obsah je skutečnou slabostí Drupalu. Já osobně dělám pouze přidávání obsahu na produkční web. Pokud chce klient vidět, jak vypadá obsah před jeho spuštěním, nastavím klon produkčního webu, který je přístupný pouze pro klienta. Poté, co jsou schváleny, jsou stejné změny provedeny přímo ve výrobě.

Existuje další alternativa, která se hodí kolem: modul Nasazení . Má využívat páku Services , aby byl inscenovaný obsah relativně bezbolestný. Ale nemohu ručit za jeho účinnost a nemá verzi Drupal 7.

34
user7

V našem procesu.

  1. Máme skript Shell, který stahuje db z prod.
  2. Hudson používáme k přestavbě větví dev/staging pro synchronizaci živých a dev větví.

    Protože používáme Git, má každý úkol, který děláme, svou vlastní větev, a když jsme předali QA, sloučíme ho s masterem jako nášmu staging serveru pro regresní testování.

    Když je mistr připraven, vydáme zkušební verzi pro náš Release Server což je replika live (konfigurace, hardware atd.).

  3. K nasazení konfigurací používáme modul Feature. Některé výrobky zatím nejsou podporovány funkcí, takže používáme hook_update_N a poté spouštíme updatedb.php nebo drush -vd updb

  4. Po vydání proveďte funkce vrátit zpět (drush fra --yes) pro vrácení všech přepsaných funkcí.
  5. Protože používáme Boost (přesun na Varnish) a Memcache, musíme vymazat mezipaměť (drush cc all).

    Používáme rsync k synchronizaci našich obrázků/videa atd ...

7
ninjascorner

Při migraci ze serveru XAMPP na jiný server jsem postupoval podle pokynů na tento web .

Ujistěte se, že na produkčním serveru máte stejnou strukturu jako na vývojovém serveru. Také jsem musel upravit některé soubory v Drupal admin dashboardu umístěném na: admin/config/media/file-system

Zajistěte, aby vaše cesta k veřejnému systému souborů a dočasný adresář byla nastavena správná umístění.

2
kretzm