จัดการโมดูลที่กำหนดเองในการติดตั้งหลาย ๆ


19

เรามีโมดูลที่กำหนดเองซึ่งใช้สำหรับเว็บไซต์หลายแห่ง โมดูลเหล่านั้นไม่สามารถเผยแพร่เป็นโมดูลที่สนับสนุนได้เช่นเนื่องจากเป็นไคลเอนต์เฉพาะทำให้สมมติฐานที่ใช้ไม่ได้กับโมดูลที่สนับสนุนและอื่น ๆ

ฉันรู้เกี่ยวกับความเป็นไปได้ที่จะจัดการกับสิ่งนี้:

  • คัดลอกและวางไว้รอบ ๆ ทำให้เป็นการยากที่จะทำให้โมดูลทันสมัยในการติดตั้งทั้งหมด

  • มีการติดตั้งแบบหลายไซต์ครั้งเดียว แต่ไม่สามารถทำได้

  • ใช้ submodules git แต่พวกเขาก็น่ารังเกียจมันง่ายที่จะลืมพวกเขาและไม่สนับสนุนเสมอ (เช่น Pantheon)

  • Drush สร้างสคริปต์เพื่อตรวจสอบจากที่เก็บคอมไพล์ทั่วไป สำหรับสิ่งนี้คุณ AFAIK จำเป็นต้องใช้ drush make สำหรับทั้งไซต์และเราไม่ได้ใช้งานเลย

  • http://drupal.org/project/fserver ฉันยังไม่ได้ลองมันเลยมีใครรู้บ้างไหมว่ามันเสถียรเพียงพอหรือไม่ คำอธิบายโครงการไม่ได้มีแนวโน้มมากและไม่มีรุ่นที่ 7.x

มีอะไรอีกหรือดีกว่า คุณชอบอะไรและทำไม


ฉันคิดว่าวิธีใหม่ในการทำสิ่งเหล่านี้คือแอพ: drupal.org/project/apps
mojzis

คำตอบ:


10

Drushทำให้วิธีการที่คุณได้กล่าวแล้วเป็นรุ่นที่ทีมงานของฉันคือการใช้

แม้ว่าคุณจะไม่ได้ใช้ drush make สำหรับไซต์ของคุณ แต่ก็ควรตรงไปตรงมาสำหรับคุณที่จะย้ายไปยังเวิร์กโฟลว์นี้หากคุณต้องการเนื่องจาก drush ยังมีdrush make-createซึ่งจะสร้างไฟล์ make จากไซต์ที่มีอยู่ จึงไม่จำเป็นต้องรู้สึกว่ามันคุ้มค่าสำหรับเว็บไซต์ใหม่เท่านั้น :)


ขอบคุณฉันตัดสินใจยอมรับคำตอบของคุณ ฉันจำเป็นต้องคุ้นเคยกับการทำเครื่องดื่มแล้วหาวิธีจัดการกับสิ่งนี้ให้ดีที่สุดในโครงการขนาดใหญ่ที่มีโมดูลที่กำหนดเองจำนวนมากและโน้มน้าวใจเพื่อนร่วมงานของฉันก่อนที่จะเริ่มใช้สิ่งนี้แม้ว่า;) คุณมีทรัพยากรใด ๆ ไซต์เช่นวิธีที่ดีที่สุดในการอัปเดตเวอร์ชันสร้างเว็บไซต์ใหม่
Berdir

2
ฉันไม่ได้มีทรัพยากรใด ๆ ดังนั้นฉันจึงเขียน :) drupal.stackexchange.com/questions/33403/…แน่นอนคุณสามารถแสดงความคิดเห็นด้วยคำถามที่ลึกซึ้งยิ่งขึ้นหากคุณต้องการ :)
Letharion

1

หากไซต์ทั้งหมดอยู่บนเซิร์ฟเวอร์เดียวกันคุณสามารถใช้symlinkเพื่อโหลดโมดูลจากส่วนกลางหรือrsyncถ้าคุณกำลังจัดการกับเซิร์ฟเวอร์หลายเครื่อง

วิธีนี้จะช่วยแก้ปัญหาการกระจายไฟล์ แต่คุณยังต้องเริ่มการอัปเกรด สามารถดำเนินการอัตโนมัติdrushพร้อมกับสคริปต์อย่างง่ายที่เรียกอัปเกรดในทุกไซต์ทีละรายการ


0

ดูเหมือนว่าคุณเกือบจะดูเป็นวิธีแก้ปัญหาทั้งหมดแล้ว เมื่อฉันอ่านก่อนอื่นสิ่งที่อยู่ในใจของฉันมันมีวิธีแก้ปัญหาอื่น ๆ สองอย่างเช่นrsyncหรือsymlinkแต่อีกครั้งมันไม่สะดวกที่จะรักษา

จากนั้นในความทรงจำเกี่ยวกับการปรับใช้โมดูลGitที่จริงเป็นคำสั่งผสมที่ดีกับ submodules คอมไพล์

ฉันยังไม่ได้ลองความคิดนี้ แต่ก็สามารถใช้งานได้หรืออย่างน้อยก็ให้วิธีการแฮ็คข้อมูลของคุณกับระบบของคุณเอง


การปรับใช้ Git แสดงข้อมูลรุ่นของโมดูล contrib แต่เราไม่มีโมดูล contrib ดังนั้นฉันไม่คิดว่ามันจะช่วยได้
Berdir

0

ฉันใช้ที่เก็บ git แยกต่างหากสำหรับโมดูลที่สนับสนุน / กำหนดเองทั้งหมดโดยที่โมดูลที่สนับสนุนหรือกำหนดเองแต่ละโมดูลอยู่ในสาขาแยกต่างหาก (ไม่ใช่ใน submodule)

นี่คือการผสานคอมไพล์ทำงานที่นี่:

เจ้านาย

      <-- custom
        <-- custom module 1
        <-- custom module 2    

      <-- contrib
        <-- contrib module 1
        <-- contrib module 2     

master -> release

และสคริปต์ bash / drush เพื่ออัปเดตสาขา


โซลูชันของฉันอ้างอิงจากบทความนี้nvie.com/posts/a-successful-git-branching-model
Refineo

ฮึ่ม ดังนั้นฉันจึงสามารถเพิ่มไซต์อื่นเป็นรีโมตและอิมพอร์ตสาขาโมดูลที่กำหนดเองได้จากที่นั่น ที่สามารถใช้งานได้ แต่ค่อนข้างซับซ้อน
Berdir

0

ฉันใช้ SVN แทน Git เพื่อจัดเก็บโมดูลที่พัฒนาขึ้นเองของเรา หลังจากฉันยอมรับการเปลี่ยนแปลงจาก localhost ฉันแค่เรียกใช้สคริปต์ bash ซึ่งรันคำสั่ง "svn update" ที่ตำแหน่งเซิร์ฟเวอร์ที่กำหนดไว้ล่วงหน้า เมื่อใดก็ตามที่ฉันปรับใช้โมดูลไปยังตำแหน่งใหม่ฉันจะอัปเดตสคริปต์ทุบตี เป็นการตั้งค่าที่ง่ายและใช้งานได้จริงโดยไม่ต้องยุ่งยาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.