Làm thế nào để bạn cập nhật một máy chủ drupal trực tiếp mà không ghi đè lên nội dung?


9

Tôi có một trang web đang hoạt động và mọi người đang tích cực đưa vào nội dung. Tuy nhiên, tôi đã phải thực hiện một số thay đổi trong môi trường phát triển, điều này khiến tôi mất vài tuần để làm. Các thay đổi yêu cầu các mô-đun mới được cài đặt và các mô-đun cũ phải được gỡ bỏ, điều này tất nhiên đã thay đổi nội dung và cấu trúc cơ sở dữ liệu.

Câu hỏi của tôi là làm cách nào để tải trang web này trở lại môi trường trực tiếp và cập nhật cơ sở dữ liệu mà không ghi đè lên nội dung mới mà người dùng mới đã được thêm trong hai tuần qua?


Tôi đoán bạn sẽ phải khóa trang web trực tiếp, tức là "không người dùng nào có thể áp dụng các bản cập nhật", đồng bộ hóa trang web trực tiếp với máy chủ phát triển của bạn, áp dụng các thay đổi của bạn và đồng bộ hóa lại. Tôi có thiết lập sau: Máy chủ phát triển (chỉ để thêm mã cập nhật, v.v.), máy chủ chính - máy chủ phát triển được triển khai để này, (nơi người dùng thêm nội dung) và máy chủ trực tiếp (máy chủ được triển khai cho máy chủ này).
Cyclonecode

Câu trả lời:


3

Thomas Zahreddin đã đúng. Nhưng tùy thuộc vào những gì đã thay đổi ("tôi đã mất vài tuần ..."), có nhiều điều cần xem xét hơn.

  1. Bạn đã thêm / thay đổi loại nội dung. Cố gắng xuất và nhập chúng. Hãy chắc chắn rằng bạn không bị mất nội dung.
  2. Bạn đã thêm / thay đổi quan điểm? Bạn có thể xuất và nhập chúng một cách an toàn.
  3. Cập nhật mô-đun. Kiểm tra chúng trên dữ liệu hiện tại. Luôn có cơ hội dữ liệu người dùng phá vỡ một bản cập nhật.
  4. Thay đổi cấu hình mô-đun. Nếu nó không quá nhiều, ghi chú và làm lại chúng. Khác thử các tính năng và mô-đun cánh tay mạnh mẽ . Một tùy chọn khác là tìm ra các tên biến chính xác và ghi các giá trị vào settings.php.
  5. Bạn có nội dung bổ sung trong hệ thống dev. Ở đây mọi thứ có được thực sự lông. Bạn có thể thử mô-đun triển khai hoặc xuất nút . Nhưng chúng không phải là đạn bạc.

Nếu bạn không có trường hợp tầm thường, tôi sẽ kiểm tra thủ tục của bạn trước. Và tất nhiên hãy sao lưu các tập tin và dữ liệu trước khi bạn bắt đầu trên hệ thống trực tiếp. ( Sao lưu và di chuyển có ích ở đây.)


1

Bạn phải kiểm tra những gì bạn muốn thay đổi:

  • nội dung hoặc gói -> chèn nội dung mới | gói, xuất và nhập các nút hoặc thay đổi gói nội dung | trong cơ sở dữ liệu cho bản ghi này
  • Tên của các trường đơn lẻ và có sự xuất hiện trong nội dung | gói -> ví dụ: với giao diện quản trị hoặc
  • các giá trị trong các trường -> nhiệm vụ khó nhất: bạn có thể thực hiện việc này thông qua SQL trong cơ sở dữ liệu (có thể) hoặc với một mô-đun như di chuyển

1

Tôi có quy trình tương tự để xử lý tại nơi làm việc khi cập nhật trang web Drupal. Vấn đề lớn nhất là Drupal không thực sự làm tốt công việc tách biệt nội dung và logic trong cơ sở dữ liệu của nó.

Các câu trả lời được đưa ra bởi Thomas Zagreddin và BetaRide sẽ đủ cho bạn cơ hội tốt nhất để hoàn thành việc di chuyển thành công. Thực sự không có chén thánh về chủ đề này.

Tôi muốn cung cấp cho bạn một mẹo phát triển mặc dù nó giúp tôi tiết kiệm rất nhiều rắc rối trong việc cập nhật trang web của chúng tôi: Cố gắng giữ logic của bạn càng nhiều càng tốt trong mã của bạn (mô-đun / chủ đề). Giống như, cố gắng tránh tạo Lượt xem càng nhiều càng tốt. Đôi khi bạn sẽ phải, nhưng điều đó sẽ yêu cầu cập nhật cơ sở dữ liệu khác ...

Sử dụng quản lý kiểm soát nguồn!

Nếu bạn có thể giữ mọi thứ theo mã (tất nhiên, bạn sẽ không thể làm điều này), bạn chỉ cần sử dụng một SCM như Git , SubVersion hoặc Mercury để cập nhật nguồn của mình và trong trường hợp xấu nhất là hoàn nguyên phiên bản trước của nguồn của bạn nếu bản cập nhật của bạn không hoạt động như kế hoạch.

Và, tất nhiên, như được giải quyết trong các câu trả lời trước: sao lưu, sao lưu, sao lưu, sao lưu ...


0

Đối với hầu hết các thay đổi bạn có thể sử dụng Mô-đun tính năng Mô-đun này chỉ có thể thay đổi các thay đổi, những gì bạn đã thực hiện trên môi trường cục bộ.

Nếu không, bạn có thể sử dụng mô-đun đẹp này Sao lưu và di chuyển Chỉ cần cài đặt mô-đun này trực tuyến trước sau đó sao lưu toàn bộ nội dung hoặc cơ sở dữ liệu hiện có, sau đó triển khai mô-đun này trên cục bộ. Sau đó thực hiện thay đổi trên địa phương những gì bạn muốn, một lần nữa hãy sao lưu địa phương của bạn và sau đó triển khai nó trực tuyến.


0

tôi chỉ có cùng một vấn đề. Để giải quyết nó tôi lưu ý rằng nội dung duy nhất tôi có trong cuộc sống không có trong dev là chi tiết người dùng mới. Tôi chỉ cần vào tab People của quản trị viên và sao chép chi tiết mọi người qua dev. Trong dev tôi chỉ cần gõ chúng vào mà không có bất kỳ loại tự động hóa. Vì vậy, lần tới khi tôi tải lên từ nhà phát triển, các chi tiết của mọi người sẽ tự nhiên đúng và sẽ không bị ghi đè.


Chào mừng bạn đến câu trả lời của Drupal! Mặc dù tôi chắc chắn rằng những điều trên chỉ làm việc tốt cho bạn, nhưng nó không có vẻ rất mạnh mẽ. Nhập nội dung dễ bị lỗi chính tả và nếu có nội dung mới được phát trực tiếp vào lần tiếp theo, nó sẽ bị ghi đè (trừ khi bạn nhớ nhập lại).
Cấp tiến miễn phí
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.