WordPress และ Git เวิร์กโฟลว์


23

ฉันรู้ว่าคำถามนี้ถูกถามมานับพันครั้ง แต่ฉันพยายามหาวิธีที่ดีที่สุดของ Git เมื่อทำงานกับ WordPress

ฉัน scoured เว็บและอ่านบทความหลายสิบทั้งหมดที่ดูเหมือนจะครอบคลุมหัวข้อสั้น ๆ นี่คือตัวอย่างที่น่าอ่านที่สุดที่ฉันได้อ่านเมื่อไม่นานมานี้

- เวอร์ชั่นการควบคุม WordPress

- จัดการการปรับใช้ชุดรูปแบบ WordPress ด้วย Git

- จัดการธีม WordPress ของคุณเองโดยใช้คอมไพล์แทน FTP

ปัจจุบันเวิร์กโฟลว์ของฉันมีลักษณะเช่นนี้

  • ติดตั้ง WordPress ในเครื่อง
  • พัฒนาชุดรูปแบบ
  • ส่งออกฐานข้อมูล WordPress จากเซิร์ฟเวอร์ท้องถิ่น
  • นำเข้าฐานข้อมูล WordPress ไปยังเซิร์ฟเวอร์ระยะไกล
  • อัปโหลดไฟล์ WordPress และชุดรูปแบบผ่าน FTP
  • ลูกค้าทำการเปลี่ยนแปลง
  • ดาวน์โหลดไฟล์ WordPress และธีมผ่าน FTP และส่งออกฐานข้อมูล WordPress จากเซิร์ฟเวอร์ระยะไกล
  • แทนที่ไฟล์ในเครื่อง
  • ทำการเปลี่ยนแปลงการพัฒนา
  • อัปโหลดใหม่ผ่าน FTP ส่งออกและนำเข้าฐานข้อมูลไปยังเซิร์ฟเวอร์ระยะไกล

ฉันรู้ว่า Git สามารถทำให้กระบวนการนี้คล่องตัวขึ้น ดูเหมือนว่าวิธีที่ดีที่สุดในการทำเช่นนี้คือการมีไฟล์. gitignore ที่ละเว้นไดเรกทอรีบางอย่างที่ไม่จำเป็นต้องถูกติดตามรวมถึงการมีทั้งไฟล์ wp-config.php แบบโลคัลและแบบรีโมต

แต่คุณจะจัดการกับฐานข้อมูลได้อย่างไร ลูกค้ามักจะทำการเปลี่ยนแปลง (โพสต์ / หน้า / ปลั๊กอิน) ฉันยังต้องส่งออกจากฐานข้อมูลระยะไกลและนำเข้ากลับบนเซิร์ฟเวอร์ภายในเครื่องของฉันหรือไม่

ใครช่วยแนะนำเวิร์กโฟลว์ที่ดีที่สุดให้ฉันได้ไหม และเดินผ่านขั้นตอนต่างๆ

นอกจากนี้ฉันอาจต้องการใช้ Bitbucket เป็น repos ส่วนตัวกับพวกเขาฟรีเหมือน GitHub

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

ขอบคุณล่วงหน้า!


มันเป็นอย่างไรบ้าง คุณคิดออกไหม มีปัญหาเดียวกันที่นี่
qwerty

3
คุณช่วยโฟกัสคำถามของคุณหน่อยได้ไหม? คุณถามเกี่ยวกับคอมไพล์แล้วข้ามไปยังฐานข้อมูลและคอมไพล์ไม่ใช่เครื่องมือสำหรับจัดการกับสิ่งเหล่านั้น
Rarst

4
ฉันคิดว่าคำถามของคุณถูกต้อง ฉันมีเวิร์กโฟลว์เดียวกันและโดยการพูดคุยกับนักพัฒนาคนอื่น ๆ สังเกตว่าพวกเขายังมีเวิร์กโฟลว์เดียวกัน แต่มันใช้เวลานานมากและเปิดโอกาสมากมายสำหรับข้อผิดพลาด ฉันก็จะสนใจวิธีแก้ปัญหาที่ดีกว่า
gdaniel

คำตอบ:


6

ฉันเป็นหนึ่งในนักพัฒนาของWP Migrate DB Proและต้องการที่จะตอบคำถามของ @ Ennui:

"คุณรู้หรือไม่ว่าสคริปต์แทนที่ url ของ db นั้นจะคำนึงถึงสตริงที่ต่อเนื่องกันหรือไม่"

ใช่มันจัดการกับข้อมูลที่เป็นอนุกรม ในความเป็นจริงนั่นคือเหตุผลหลักที่ฉันพัฒนาปลั๊กอินรุ่นฟรีในปี 2009 :)

น่าเสียดายที่ฉันมีชื่อเสียง 41 เท่านั้นดังนั้นไม่สามารถตอบความคิดเห็นของ @ Ennui ได้ ขอโทษสำหรับสิ่งนั้น.


1
มี 50 ตอนนี้ :) คนเสริมที่ยอดเยี่ยม
Andrew Bartel

4

ฉันเป็นเขตแดนในการลงคะแนนเพื่อปิดเรื่องนี้ว่า "ไม่สร้างสรรค์" เนื่องจากดูเหมือนว่าเป็นสิ่งที่จะเรียกร้องการอภิปรายและความคิดเห็นมากกว่าคำตอบ แต่...

นั่นไม่ใช่สิ่งที่กระบวนการทำงานของฉันดูเหมือนและทำให้วิธีการของฉัน (และคำตอบ) แตกต่างจากคำตอบที่เหลือส่วนใหญ่

  1. ติดตั้ง WordPress ในเครื่อง
    1. นี่เป็นโคลนจาก repo Git ในพื้นที่ที่มีการปล่อยเสถียรล่าสุด
    2. ฉันยังเก็บสำเนาของปลั๊กอินรุ่นล่าสุดบางตัวที่ฉันติดตั้งไว้เกือบตลอดเวลา
  2. สร้างชุดรูปแบบและปลั๊กอินที่จำเป็น
  3. อัปโหลดไปยังเซิร์ฟเวอร์จัดเตรียมสาธารณะ
    1. ลูกค้าได้รับการเข้าถึง แต่ไม่สามารถเปลี่ยนรหัสได้และบอกว่าการแก้ไขฐานข้อมูลจะไม่ถูกถ่ายโอนไปยังไซต์ที่ใช้งานจริง
    2. ซึ่งหมายความว่าไม่มีเหตุผลที่จะดาวน์โหลดรหัสกลับไปยังเซิร์ฟเวอร์การพัฒนา
    3. และไม่มีเหตุผลที่จะซิงค์ฐานข้อมูลท้องถิ่น
  4. ทำการเปลี่ยนแปลงไซต์ท้องถิ่นโดยยึดตามความคิดเห็นของพนักงานและลูกค้าของเรา
  5. อัปโหลดการเปลี่ยนแปลง
  6. ทำซ้ำตามความจำเป็น (แต่มีความต้านทานเพิ่มขึ้น :))
  7. หากเราให้บริการเนื้อหาซึ่งไม่ใช่กรณีนี้เรา (ไม่ใช่ลูกค้า) จะล้างฐานข้อมูลบนเซิร์ฟเวอร์จัดเตรียมและอัปโหลดเนื้อหา
  8. ปรับใช้โดยการอัปโหลดรหัสท้องถิ่นไปยังไซต์การผลิต
  9. หากเราสร้างเนื้อหาเนื้อหาจะถูกส่งออกจากไซต์การแสดงละครผ่านเครื่องมือส่งออกวานิลลาและนำเข้าสู่ไซต์การผลิต
    1. นี่เป็นครั้งเดียวที่ฉันต้องย้ายฐานข้อมูลและใช้เครื่องมือมาตรฐานที่สวยงาม ฉันจะใช้Velvet Blues Update URLเพื่อล้างฐานข้อมูลหากจำเป็น
  10. ตรวจแก้จุดบกพร่อง
  11. ตอนจบ

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

โค้ดย้ายทางเดียว - จากโลคัลไปยังการ staging หรือการผลิต มันไม่เคยเคลื่อนไหวอย่างอื่น นั่นเป็นการขจัดขั้นตอนบางอย่างของคุณและทำให้ฉันสบายใจ ฉันไม่ต้องการถูกตำหนิสำหรับการแก้ไขรหัสของลูกค้าและฉันไม่ต้องการนำเข้าไฟล์ที่ถูกแฮ็กซึ่งเป็นไปได้ที่ไม่เป็นศูนย์

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

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


1
11. จุดจบ - คุณไม่เคยดูแล / แก้ไข / ปรับปรุงไซต์ WordPress ใช่ไหม
Simon East


2

ลองดูที่สแต็ข้อเท็จจริง มันใช้นักแต่งเพลงเพื่อจัดการรุ่นของ Wordpress และปลั๊กอินบุคคลที่สามและยังมี capistrano สำหรับ deploys และคนจรจัด / ansible สำหรับการตั้งค่าเซิร์ฟเวอร์รวมถึงเซิร์ฟเวอร์เสมือนในท้องถิ่นเพื่อการพัฒนา


2

ฉันเพิ่งทำการทดสอบจำนวนมากเกี่ยวกับเรื่องนี้และนี่คือขั้นตอนการทำงานที่ฉันใช้ซึ่งทำสิ่งที่คุณต้องการอย่างมาก:

  • ฉันใช้ wp-cli เพื่อจัดการแกนเวิร์ดเพรสและอัปเดตเวิร์ดเพรส
  • ฉันใช้นักแต่งเพลงพร้อมกับhttp://wpackagist.orgเพื่อจัดการการพึ่งพาปลั๊กอินและธีม
  • ฉันใช้คอมไพล์และใส่ไฟล์ core wp ใน. gitignore ดังนั้นส่วนใหญ่ไฟล์ wp-config.php และธีมเด็กอยู่ในคอมไพล์

ฉันไม่คุ้นเคยกับเครื่องมือการย้ายฐานข้อมูล แต่น่าจะเป็นส่วนเสริมที่ยอดเยี่ยมสำหรับกระบวนการทำงานนี้

นี่คือรายละเอียดทั้งหมดเกี่ยวกับขั้นตอนการทำงานhttp://geekpad.ca/blog/post/maintainble-portable-wordpress-using-composer-wp-cli


1

เกี่ยวกับฐานข้อมูล "การโคลนนิ่ง" ฉันใช้ WP Migrate DB Pro: http://deliciousbrains.com/wp-migrate-db-pro/

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


1
คุณรู้หรือไม่ว่าสคริปต์แทนที่ url ของ db นั้นจะคำนึงถึงสตริงที่ต่อเนื่องกันหรือไม่ ข้อความค้นหาการอัปเดตอย่างง่ายเพื่อแทนที่ URL นั้นไม่ดีเพราะมันจะทำลายสตริงที่มีลำดับต่อเนื่องใด ๆ ที่มี URL อยู่ในนั้น (เว้นแต่ว่า URL ใหม่จะมีจำนวนอักขระเหมือนกันกับ URL เดิม สิ่งนี้แบ่งวิดเจ็ตข้อความและปลั๊กอินจำนวนมากเหนือสิ่งอื่นใด ฉันใช้สคริปต์นี้ในตอนนี้ แต่ฉันสนใจปลั๊กอินนี้หากทำสิ่งเดียวกัน
Ennui

ฉันเพิ่งส่งอีเมลนักพัฒนาซอฟต์แวร์เพื่อมาและตอบคำถามนั้น ฉันยังไม่ต้องการสิ่งนั้น (ยัง)
deadlyhifi

1
ฉันใช้ปลั๊กอินนี้สำหรับความต้องการการโยกย้ายทั้งหมดของฉันและยังไม่เห็นปัญหาใด ๆ กับสตริงที่ต่อเนื่องกันและแทนที่ url ฟิลด์ที่กำหนดเองทั้งหมดถ่ายโอนโดยไม่มีปัญหา โปรดทราบว่ามันจะแทนที่ทุกสิ่งโดยค่าเริ่มต้น ซึ่งรวมถึงผู้ใช้ / รหัสผ่าน / อื่น ๆ ...
hereswhatidid
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.