คุณจะอัพเดตเซิร์ฟเวอร์ Live drupal โดยไม่เขียนทับเนื้อหาได้อย่างไร


9

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

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


ฉันเดาว่าคุณจะต้องล็อคไซต์สดนั่นคือ "ไม่มีผู้ใช้อาจใช้การอัปเดต" ซิงค์ไซต์สดกับเซิร์ฟเวอร์การพัฒนาของคุณใช้การเปลี่ยนแปลงของคุณและซิงค์อีกครั้ง ฉันมีการตั้งค่าต่อไปนี้: เซิร์ฟเวอร์การพัฒนา (เพื่อเพิ่มรหัสอัพเดท ฯลฯ ) เซิร์ฟเวอร์ต้นแบบ - เซิร์ฟเวอร์การพัฒนาถูกปรับใช้กับสิ่งนี้ (ที่ผู้ใช้เพิ่มเนื้อหา) และเซิร์ฟเวอร์สด (ต้นแบบถูกปรับใช้กับเซิร์ฟเวอร์นี้)
Cyclonecode

คำตอบ:


3

โทมัสซาฮิรดดินถูกต้อง แต่ขึ้นอยู่กับสิ่งที่เปลี่ยนแปลง ("พาฉันไปสองสามสัปดาห์ ... ") มีสิ่งที่ต้องพิจารณาอีกมาก

  1. คุณเพิ่ม / เปลี่ยนประเภทเนื้อหา ลองส่งออกและนำเข้าพวกเขา ตรวจสอบให้แน่ใจว่าคุณไม่สูญเสียเนื้อหา
  2. คุณเพิ่ม / เปลี่ยนมุมมองหรือไม่? คุณสามารถส่งออกและนำเข้าได้อย่างปลอดภัย
  3. ปรับปรุงโมดูล ทดสอบกับข้อมูลปัจจุบัน มีโอกาสที่ข้อมูลผู้ใช้จะหยุดการอัปเดตอยู่เสมอ
  4. การเปลี่ยนแปลงการกำหนดค่าโมดูล หากไม่มากเกินไปให้จดบันทึกและทำซ้ำ ลองใช้คุณสมบัติและโมดูลแขนที่แข็งแกร่ง settings.phpอีกตัวเลือกหนึ่งคือการคิดออกชื่อตัวแปรที่แน่นอนและเขียนค่าลงใน
  5. คุณมีเนื้อหาเพิ่มเติมในระบบ dev สิ่งที่นี่มีขนดกจริงๆ คุณสามารถลองโมดูลการใช้งานหรือการส่งออกโหนด แต่พวกเขาไม่มีกระสุนเงิน

หากคุณไม่มีคดีเล็ก ๆ น้อย ๆ ผมขอทดสอบขั้นตอนของคุณล่วงหน้า และแน่นอนว่าต้องทำการสำรองข้อมูลไฟล์และข้อมูลก่อนที่คุณจะเริ่มระบบสด (การสำรองและย้ายข้อมูลมีประโยชน์สำหรับที่นี่)


1

คุณต้องตรวจสอบสิ่งที่คุณต้องการเปลี่ยนแปลง:

  • contenttype หรือบันเดิล -> แทรก contenttype | bundle ใหม่ส่งออกและนำเข้าโหนดหรือเปลี่ยน contenttype | bundle ในฐานข้อมูลสำหรับบันทึกนี้
  • ชื่อของเขตข้อมูลเดียวและมีความผิดพลาดใน contenttypes | bundles -> เช่นกับส่วนติดต่อผู้ดูแลระบบหรือ
  • ค่าในฟิลด์ -> งานที่ยากที่สุด: คุณสามารถทำได้ผ่าน SQL ในฐานข้อมูล (อาจ) หรือด้วยโมดูลเช่นการโยกย้าย

1

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

คำตอบที่ได้รับจาก Thomas Zagreddin และ BetaRide จะทำให้คุณมีโอกาสที่ดีที่สุดในการย้ายข้อมูลให้สำเร็จ ไม่มีจอกศักดิ์สิทธิ์สำหรับเรื่องนี้

ฉันต้องการให้คำแนะนำในการพัฒนาแก่คุณซึ่งช่วยให้ฉันมีปัญหาในการทำให้เว็บไซต์ของเราทันสมัยอยู่เสมอ: พยายามเก็บ logics ของคุณให้มากที่สุดเท่าที่จะทำได้ในโค้ดของคุณ (โมดูล / ธีม) เช่นพยายามหลีกเลี่ยงการสร้าง Views ให้มากที่สุด บางครั้งคุณจะต้องทำ แต่นั่นจะต้องมีการอัพเดทฐานข้อมูลอื่น ...

ใช้การจัดการการควบคุมแหล่งที่มา!

หากคุณสามารถเก็บทุกอย่างไว้ในโค้ด (แน่นอนคุณไม่สามารถทำสิ่งนี้ได้เสมอ) คุณสามารถใช้ SCM เช่นGit , SubVersionหรือMercuryเพื่ออัปเดตแหล่งของคุณและในกรณีที่เลวร้ายที่สุดกลับไปเป็น แหล่งที่มาเวอร์ชันก่อนหน้าของคุณหากการอัปเดตของคุณไม่ทำงานตามแผนที่วางไว้

และแน่นอนตามที่ระบุไว้ในคำตอบก่อนหน้านี้: สำรองข้อมูลสำรองข้อมูลสำรองสำรอง ...


0

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

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


0

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


ยินดีต้อนรับสู่คำตอบของ Drupal! ในขณะที่ฉันแน่ใจว่าข้างต้นใช้งานได้ดีสำหรับคุณ แต่ก็ไม่ได้เสียงที่แข็งแกร่งมาก การพิมพ์สิ่งต่าง ๆ มีแนวโน้มที่จะพิมพ์ผิดและหากมีสิ่งใหม่ในการถ่ายทอดสดในครั้งต่อไปมันจะถูกเขียนทับ (เว้นแต่คุณจะจำไม่ได้ว่าจะพิมพ์ซ้ำ)
ฟรี Radical
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.