2010-04-16 35 views
13

Có an toàn để di chuyển các module của tôiDrupal - di chuyển mô-đun thư mục

  • Từ trang web/all/modules/
  • Để trang web/all/modules/contribtrang web/all/modules/tuỳ chỉnh

trên trang web sản xuất?

Tức là, Drupal có tự động phát hiện rằng mô-đun vẫn ở đó, nhưng trong một đường dẫn mới?

Trả lời

3

Nếu bạn di chuyển mô-đun, Drupal sẽ thấy mô-đun cũ bị hỏng và phiên bản mới tồn tại. Nó sẽ không giả định hai là cùng một điều - chỉ đơn giản là di chuyển.

+0

cảm ơn, sẽ đóng nếu một người khác có thể xác nhận điều này – davidosomething

+2

Nếu bạn vô hiệu hóa mô-đun, di chuyển nó, sau đó bật lại nó ở vị trí mới, bạn sẽ ổn. Nó có thể sẽ giữ nguyên cài đặt của nó. Nếu bạn chỉ đơn giản là yank nó ra từ bên dưới Drupal nó sẽ không như thế. – McAden

+2

Bước 1: Di chuyển mô-đun. Bước 2: Xóa bộ nhớ cache. Nếu một mô-đun vẫn bị hỏng tại thời điểm này, có một lỗi. – Grayside

2

Drupal lưu trữ vị trí tệp trong bảng hệ thống, thông tin sẽ được xây dựng lại khi bạn xóa bộ đệm mô-đun, vì vậy nếu bạn di chuyển nội dung và xóa bộ nhớ cache sau đó bạn sẽ ổn.

+0

cuộc gọi tốt, cảm ơn! – davidosomething

1

Rất tốt để có/đóng góp và/thư mục con tùy chỉnh cho các mô-đun. Đối với D7, đặc biệt nếu bạn sử dụng thực thể, bạn nên vô hiệu hóa các mô-đun, di chuyển chúng và sau đó kích hoạt lại. Nó hoạt động.

Cách khác, di chuyển mô-đun đến các thư mục con và xóa bộ nhớ cache, đôi khi không hoạt động và có thể tạo WSOD.

20

Phiên bản Drupal lên đến D6 giữ vị trí mô-đun trong bảng hệ thống, nhưng bắt đầu từ D7 có nhiều nơi ghi đường dẫn (ví dụ: bảng đăng ký và bảng registry_file) để di chuyển thư mục và xóa bộ nhớ cache sẽ không thực hiện, nhất có thể sẽ dẫn đến những vấn đề đáng kể.

Một chuỗi các bước bạn có thể thử:

  1. Sao lưu cơ sở dữ liệu của bạn
  2. Kiểm tra trong mã của bạn vào kiểm soát phiên bản
  3. Run sau truy vấn:

    hệ thống CẬP NHẬT SET filename = REPLACE (tên tệp, 'sites/all/modules', 'sites/all/modules/contrib');

    Cập nhật đăng ký SET filename = REPLACE (tên tệp, 'sites/all/modules', 'sites/all/modules/contrib');

    CẬP NHẬT registry_file SET filename = REPLACE (filename, 'các trang web/all/modules', 'các trang web/all/modules/contrib')

  4. Move folder

  5. Run: drush cc all
+0

khi (5) đưa ra lỗi (ngữ cảnh cho lỗi), cố gắng cắt bớt tất cả bộ nhớ cache% bảng – filsterjisah

0

Bạn có thể di chuyển hầu hết các mô-đun một cách an toàn, nếu bạn xóa bộ nhớ cache sau đó (drush cc all).

Tuy nhiên, một số mô-đun, đặc biệt là ctools, lưu trữ thông tin đường dẫn tệp ở những nơi khác ngoài bảng hệ thống hoặc bộ nhớ cache. Bạn có thể phải để các mô-đun đó ở vị trí ban đầu của chúng, nhưng bạn vẫn có thể di chuyển mọi thứ khác.

3

Câu trả lời của irakli hoạt động tốt cho tôi, nhưng tôi muốn thêm một số phức tạp bổ sung vào các truy vấn trong trường hợp những người khác thấy chúng hữu ích.

Bước 1 - Cập nhật tất cả các module 'tùy chỉnh' nếu bạn đủ may mắn khi có họ chia sẻ một không gian tên:

UPDATE system SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/custom') WHERE name LIKE 'custom_namespace_%'; 
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/custom') WHERE name LIKE 'custom_namespace_%'; 
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/custom') WHERE filename LIKE '%custom_namespace_%'; 

Bước 2 - Cập nhật tất cả 'dev' module:

UPDATE system SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/dev') WHERE name LIKE 'devel%'; 
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/dev') WHERE name LIKE 'devel%'; 
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/dev') WHERE filename LIKE '%devel%'; 

Bước 3 - Cập nhật tất cả các mô-đun 'đóng góp':

UPDATE system SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib'); 
UPDATE registry SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib'); 
UPDATE registry_file SET filename = REPLACE(filename, 'sites/all/modules', 'sites/all/modules/contrib') 

Sau đó, ném tất cả các mô-đun của bạn vào thích hợp sites/all/modules/contrib|custom|dev thư mục, xóa bộ nhớ cache và bạn đã sẵn sàng sử dụng.

2

Nếu bạn đang ở trên D7, sau đó trang tài liệu drupal đây là cách tốt nhất để đi trước với di chuyển module xung quanh - How to move modules and themes

1

sử dụng http://drupal.org/project/registry_rebuild "Registry Rebuild cũng sẽ xây dựng lại hệ thống bảng để có được các module trong đúng nơi để bạn có thể khởi động. "

  • backup db
  • tải lên 'module'
  • chuyển tất cả các module
  • chạy các trang web script/all/modules/registry_rebuild/registry_rebuild.php
  • tải lại trang web
  • nếu bạn gặp lỗi khi xóa bộ nhớ cache của trình duyệt và tất cả đang hoạt động trở lại
1

Thực ra bạn chỉ cần thực hiện các cập nhật trên bảng hệ thống và sau đó thực hiện như sau:

drush rr

và có thể ..

drush cc tất cả

drush rr

+0

có - đây là câu trả lời năm 2015 cho câu hỏi này – ErichBSchulz

Các vấn đề liên quan