Cơ sở dữ liệu nguồn không chứa phiên bản Drupal dễ nhận biết.


9

Tôi đã cài đặt hai trang web Drupal trong môi trường Ubuntu 15.10 Apache2 (2.4.12) cục bộ của tôi: Một là bản cài đặt mới của Drupal 8 và thứ hai là bản sao của một trang làm việc hiện có được xây dựng với Drupal 7 (phần lớn là các mô-đun lõi dựa, rất khiêm tốn bằng các trang). Cả hai trang web đang hoạt động tốt mà không có bất kỳ vấn đề, bất cứ nơi nào.

Mục đích của tôi trước tiên là nâng cấp trang web Drupal 7 lên Drupal 8. Tôi đã thực hiện tất cả các giai đoạn sơ bộ như định cấu hình các ngôn ngữ giống nhau, Giữ tối thiểu bằng các mô-đun (gỡ cài đặt bất kỳ mô-đun nào trong trang web D7 mà tôi có thể dễ dàng mang lại sau khi Nâng cấp ), đảm bảo các mô-đun tương tự được cài đặt trong cả hai trang web, v.v., và bây giờ tôi chỉ muốn "Transcend" (hy vọng nó là một cụm từ tốt) trang web Drupal 7 của tôi vào Drupal 8 mới.

Để đạt được mục tiêu của mình, tôi đã cài đặt mô-đun Nâng cấp Drupal trong trang web Drupal 8 của mình, truy cập localhost / sitename / nâng cấp và điền vào tất cả các chi tiết của trang web Drupal 7.

Khi tôi nhấp vào nút "Xem lại nâng cấp", tôi đã gặp lỗi:

Cơ sở dữ liệu nguồn không chứa phiên bản Drupal dễ nhận biết.

Tôi đã googled lỗi này là một cụm từ chính xác ("Lỗi") và tìm thấy rất ít kết quả; Hầu hết trong số họ dường như yêu cầu kiến ​​thức lập trình PHP mà tôi đã có được, vì vậy tôi không thể xác định xem lỗi có phải do lỗi không (đặc biệt là khi mô-đun này vẫn đang được phát triển nặng) hoặc do lỗi của tôi trong hiểu khái niệm \ chức năng của mô-đun này.

  1. Những lý do nào khiến mô-đun nâng cấp D8 Drupal không "thích" cơ sở dữ liệu D7 mà tôi cung cấp? Đặc biệt là trong khi trang web Drupal 7 đang hoạt động tốt cả trực tuyến và địa phương.

  2. Di chuyển sẽ là một lựa chọn tốt để nâng cấp, nếu nâng cấp không thể vì lý do gì? Nếu vậy, giải pháp đơn giản nhất tốt nhất bạn có thể nghĩ đến cho việc di chuyển là gì?

nhập mô tả hình ảnh ở đây

Tôi đã truy cập /var/www/html/benia/modules/migrate_upTHER/src/MigrationCreationTrait.php và đã làm:

-- return $version_string ? substr($version_string, 0, 1) : FALSE;

++ return 7;
++ return $version_string ? substr($version_string, 0, 1) : FALSE;

Hơn có lỗi này trên đầu màn hình.

nhập mô tả hình ảnh ở đây


1
Tất cả những gì tôi có thể thấy là nó không giống như cơ sở dữ liệu chứa cài đặt Drupal 7, giống như lỗi nói. Một cái gì đó phải sai trong cấu hình của bạn hoặc bạn đã không nhập nó vào nơi bạn mong đợi.
Berdir

Tại sao nó không giống như DB? Trang web D7 với DB này hoạt động khá tốt mà không cần bất kỳ probs nào ...

1
Oh và @Berdir theo "cấu hình", ý bạn là gì trong conf trong mô-đun Nâng cấp Drupal trong trang web D8? Tôi chắc chắn rằng các chi tiết tôi đã điền vào tất cả những gì tôi cần, tôi sẽ kiểm tra xem tôi có bỏ sót điều gì không ... Bạn nghĩ rằng tôi đã bỏ lỡ điều gì đó? ...

Bạn đã thử 127.0.0.1 thay vì localhost chưa? (Vì có thể thực sự không thông qua cơ sở dữ liệu với cấu hình nâng cấp hiện tại của bạn)
leymannx

Xin lỗi tôi nghĩ tôi đã hiểu ... Bạn có thể vui lòng viết lại những gì bạn đã viết không? Cảm ơn rất nhiều!!!

Câu trả lời:


4

Ở giai đoạn này, tôi không nghĩ có simpletùy chọn nâng cấp từ 7 lên 8. Như bạn có thể thấy trên ghi chú phát hành:

Khi bạn đã sẵn sàng, lõi Drupal 8 cũng bao gồm mô-đun Di chuyển để cập nhật trực tiếp các trang web Drupal 7 và 6 lên Drupal 8. Di chuyển được đánh dấu là "thử nghiệm" trong Drupal 8.0.0, nhưng sẽ được hỗ trợ đầy đủ trong phiên bản sắp tới. https://www.drupal.org/news/drupal-8.0.0- phát hành

Một chút kỹ thuật đằng sau hiện trường: Từ phiên bản 7 đến 8, họ giữ nguyên khái niệm khi xây dựng trang web (như nút, thực thể, quyền, lượt xem ...) nhưng không phải là cốt lõi. Tôi sẽ nói: họ đã thay đổi mọi thứ thành OOP, thành phần Symfony, kiến ​​trúc ... Vì vậy, không có cách nào để upgradetrang web drupal của bạn trực tiếp từ phiên bản phong nha thành 8.0, bạn phải làm migrate. Đây là cách migratingquá trình nên:

  1. Tái tạo trang web có cùng chức năng với trang web d7 của bạn.
  2. Tái tạo chủ đề (sử dụng mẫu twig)
  3. Di chuyển nội dung qua

Chi phí cho quá trình này là (không may) giống nhau để tạo lại một trang web mới trở lên. Với số 3, hãy xem bài viết này trong Giai đoạn 2: https : //www.phase2t Technology.com/blog/upgrad-to-a-drupal-8-site/


Tôi đã bắt đầu tự xây dựng một trang web viết lại trong Drupal 8 ... Thật sự rất tốt khi nhiều mô-đun tôi sử dụng trong D7 đã đi vào cốt lõi; Tôi hy vọng rằng vào thời điểm tôi sẽ chuyển sang Drupal 9, công nghệ di chuyển sẽ đạt đến trạng thái có thể là một phần hơn, được thực hiện trong các bối cảnh khác nhau, dữ liệu meta & dữ liệu trên trang, chuyển hướng nút, tệp, Chế độ xem, Các bảng điều khiển, mọi thứ thuộc sở hữu của nó càng nhiều càng tốt ... chia quá trình thành các giai đoạn khác nhau (khi bạn có thể bắt đầu từ mỗi giai đoạn có thể bất cứ khi nào bạn muốn) là điều tôi hy vọng ...

Xin lỗi để không vui: Tôi chỉ đăng câu trả lời của tôi dưới đây với các chi tiết cụ thể về những gì có thể xảy ra nhất, xin vui lòng xem. Tiền thưởng là với bạn, tất nhiên.

2

Thông báo lỗi của bạn khớp chính xác với chuỗi có trong dòng tại http://cgit.drupalcode.org/migrate_upTHER/tree/src/MigrationCreationTrait.php#n40 trong mã của mô-đun "Nâng cấp Drupal" ( https: / /www.drupal.org/project/migrate_upTHER ).

Nó cho thấy rằng đó không phải là một lỗi, mà thay vào đó là một "ngoại lệ bị ném". Nhìn vào 3 dòng tiền mã hóa của mã đó, tôi nghĩ đó chỉ là vấn đề trong việc thiết lập kết nối.

Có lẽ điều này cũng giúp:

  • trích dẫn từ vấn đề https://www.drupal.org/node/2628440 (bình luận số 3):

    Để kiểm tra xem cơ sở dữ liệu nguồn có phải là cơ sở dữ liệu Drupal hợp lệ hay không và để xác định phiên bản của cơ sở dữ liệu, quy trình nâng cấp sẽ xem bảng 'hệ thống' - bảng đó có trong cơ sở dữ liệu bạn đã chỉ định trong biểu mẫu không? Có phải cài đặt Drupal trong cơ sở dữ liệu đó có tiền tố không (và nếu vậy, bạn đã nhập tiền tố vào phần "Tùy chọn nâng cao" của biểu mẫu) chưa? ".

  • Tiếp theo là nhận xét nr 4 trong cùng một vấn đề: "Cung cấp tiền tố của bảng đã giải quyết vấn đề."

Và tất nhiên, nhận xét từ benjy (cảm ơn bạn!) Cũng sẽ giúp có thêm thông tin chi tiết về lỗi thực tế bạn đang gặp phải, tức là:

bạn có thể in ra $ e-> getException () tại đây cgit.drupalcode.org/migrate_upTHER/tree/src/ và sau đó bạn sẽ thấy lỗi PDO

Bạn có thể (tạm thời) thêm bản in như vậy giữa các dòng 122 và 123 trong mã được hiển thị qua liên kết.


Như tôi đã đề cập trong câu hỏi, tôi không có kiến ​​thức về PHP để hiểu vấn đề gì từ mã PHP rộng lớn đó ... Bạn có thể vui lòng chỉnh sửa câu hỏi và giải thích bằng những từ đơn giản thực sự "Ngoại lệ bị ném" này là gì và là gì cách để xử lý nó? Xin hãy đơn giản như bạn có thể, tôi mới bắt đầu nếm thử PHP.

@benos Điều đó đơn giản có nghĩa là rất có thể một cái gì đó rất tầm thường bị cấu hình sai trong cài đặt di chuyển của bạn. Một lỗi đánh máy, một mật khẩu sai, một URL sai. Một cái gì đó như thế.
leymannx

@benos, bạn có thể in ra $ e-> getException () tại đây cgit.drupalcode.org/migrate_upTHER/tree/src/ và sau đó bạn sẽ thấy lỗi PDO.
benjy

@leymannx Nếu tôi đã tạo 2 DB cục bộ (một cho D7 một cho D8), chỉ có một trong D7 nên có chính xác cùng một chi tiết là trang web trực tuyến tôi muốn nâng cấp, phải không?

@leymannx Tôi đã tạo lại mọi thứ. Dữ liệu D7 cục bộ hoàn toàn giống nhau tại trang web D7 trực tuyến: Thư mục của trang web giống nhau; Tên DB và Tên người dùng giống nhau và mật khẩu giống nhau; Tôi cũng đã thêm tiền tố và mặc dù mọi thứ dường như được đặt đúng chỗ, tôi vẫn nhận được cùng một lỗi.

0

Khoảnh khắc bạn buộc codebase bỏ qua việc đọc {system}, nó sẽ chết khi không tìm thấy bảng cơ sở dữ liệu tiếp theo, {field_config_instance}. Nói cách khác: nó không đọc cơ sở dữ liệu D7 của bạn. Có lẽ nó cố đọc D8, có lẽ là thứ gì đó hoàn toàn khác, làm sao chúng ta có thể biết? Nhiều khả năng bạn đang nhập cấu hình DB sai (giả sử, hai trang web nằm trên các máy chủ khác nhau với máy chủ mysql là localhost trên cả hai nhưng localhost không phải là cùng một máy chủ). Tôi vừa kiểm tra mô-đun contrib Nâng cấp di chuyển và cả mã mô-đun di chuyển lõi và thật đáng ngạc nhiên nếu có một lỗi liên quan đến tiền tố vì cả hai đều xử lý toàn bộ mảng cài đặt cơ sở dữ liệu, không phải từng mảnh.

Không thể nói mà không có quyền truy cập vào thông tin của bạn về cách khắc phục điều này. Lấy làm tiếc. Nếu tôi có thể tôi sẽ bỏ phiếu để đóng nó nhưng vì có tiền thưởng, tôi không thể. Chúng tôi không thể giúp bạn và câu hỏi này sẽ không giúp đỡ người khác. Sự trợ giúp duy nhất có thể là: đọc và hiểu tệp cài đặt Drupal 7 của bạn và cung cấp thông tin xác thực phù hợp cho mô-đun Nâng cấp di chuyển (Số lượng lớn các bình luận đã cho thấy điều này sẽ không đi đến đâu.)

Một giải pháp dài hạn có thể sẽ bao gồm một tính năng trong mô-đun contrib nơi mọi người có thể tải lên cài đặt.php của họ và sau đó chúng tôi có thể thử sử dụng tính năng đó. Điều này cực kỳ mong manh nhưng đáng để tôi đoán. Khi ai đó sẽ có thời gian để mã hóa nó ...

Tôi không biết tại sao mọi người lại ủng hộ điều này rất nhiều. Có ai khác có cùng một vấn đề?


0

Đã nhiều thời gian trôi qua kể từ khi tôi đăng bài này nhưng tôi nghĩ bây giờ tôi đã biết vấn đề là gì:

Tôi đã để lại 2-3 mô-đun được cài đặt, mà tôi (lúc đó) nghĩ là "rất cơ bản" vì vậy tôi chắc chắn rằng chúng có đường dẫn di chuyển giống như tất cả các mô-đun cốt lõi có.

Đây là, nếu tôi nhớ chính xác: Metatag và Redirect (bạn chuyển từ D7 Globalredirect & Redirect sang Redirect trong Drupal 8).

Không chỉ tôi để những thứ này trong trang web D7, tôi cũng đã cài đặt chúng trong D8, vì vậy không có phiên bản nào trong trang web của tôi là chỉ dành cho cốt lõi, khi cần.

Đó là lần di chuyển đầu tiên của tôi và tôi đã mắc sai lầm đó khi là sinh viên năm nhất của dự án. Tôi thực sự bị thuyết phục rằng "không thể" rằng các mô-đun này sẽ không có đường di chuyển (và khi bạn nghĩ về nó, chúng thực sự nên có), nhưng sau đó tôi phát hiện ra rằng thực sự, thường chỉ có các mô-đun lõi có và bất cứ thứ gì khác nên có một đường dẫn di chuyển tùy chỉnh hoặc đóng góp.

Chỉ để bạn biết --- Những cái này và các mô-đun khác có đường dẫn di chuyển đóng góp mà bạn có thể sử dụng bằng cách vá chúng với đường dẫn di chuyển này (bạn "đưa" nó vào mô-đun bằng đường dẫn).

Dù sao, đó không phải là trường hợp của tôi hồi đó và tôi chắc chắn rằng nó đi kèm với hệ thống ...

Tôi đã sai một cách đau đớn và đây dường như là lý do duy nhất khiến việc di cư ở trên thất bại; Tôi thậm chí còn củng cố giả định này bằng một thí nghiệm nhỏ mà tôi đã làm trước khi di chuyển thành công cuối cùng khoảng 2 tháng trước.


0

Khi tôi nhận được thông báo lỗi đó. Hóa ra đó là $ db_prefix do tôi đặt "drupal_". Bạn nên đặt nó trong các tùy chọn nâng cao.

Trân trọng, Carlos Aleman

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.