Làm cách nào để nhập cấu hình trên một trang web khác?


49

Tôi gặp lỗi này khi cố gắng nhập cấu hình của một trang web khác:

Cấu hình theo giai đoạn không thể được nhập, bởi vì nó bắt nguồn từ một trang khác với trang này. Bạn chỉ có thể đồng bộ hóa cấu hình giữa các trường hợp nhân bản của trang web này.

Tôi có 10 khách hàng và tôi cần đồng bộ hóa cấu hình trang web của mình với 10 trang web khác nhau.
Trang web UUID là một vấn đề để chia sẻ cấu hình với một trang web khác. Có một giải pháp?


1
Một câu trả lời hay khác ở đây drupal.stackexchange.com/q/152584/39417
Digitgopher

Câu trả lời:


55

Bạn có thể lấy UUID với:

drush config-get "system.site" uuid

Và bạn có thể thay đổi nó với

drush config-set "system.site" uuid "fjfj34-e3bb-2ab8-4d21-9100-b5etgetgd99d5"

Với điều đó bạn phải có cùng các trang web.


Làm việc cho tôi ... ba năm sau. Cảm ơn!
mrlexington

17

Quản lý cấu hình chỉ cho phép cấu hình đồng bộ giữa cùng một trang hoặc dự án để tránh các vấn đề nhập cấu hình từ trang a.com sang b.com, để thực hiện xác thực này Drupal 8 tạo UUID cho mỗi trang.

Bạn nhận được trang web hiện tại của bạn UUID thực hiện lệnh sau:

drush cget system.site

Lệnh trên chúng ta sẽ có một đầu ra tương tự như danh sách tiếp theo:

uuid: 236fa77c-d83e-42de-8a03-03c574c00160
name: Drupal 8
mail: user@example.com
slogan: ''
page:
  403: ''
  404: ''
  front: node
admin_compact_mode: false
weight_select_max: 100
langcode: en

Nhập cấu hình có UUID khác, bạn có thể xác nhận UUID bằng lệnh sau

cat sites/default/config/staging/system.site.yml

Vì lý do đó, bạn cần thay đổi giá trị của Site UUID bằng lệnh Drush sau:

drush cedit system.site

Lệnh trên cho phép bạn sử dụng trình soạn thảo văn bản yêu thích của mình để đặt cùng một UUID có trong các tệp cấu hình dàn.

cat sites/default/config/staging/system.site.yml

Sau khi thay đổi UUID và thay đổi quyền, nếu bạn truy cập lại trang example.com/admin/config/development/configuration, bạn sẽ thấy tất cả các thay đổi, xóa, đổi tên và bổ sung.

nguồn: http://enzolutions.com/articles/2014/08/27/under Hiểu-configure-manloyment-in-drupal-8 /


9
Đúng, nhưng hãy nhớ rằng việc thay đổi UUID trang web mà không thay đổi bất kỳ trang nào khác có nghĩa là drupal sẽ coi mọi trường / loại nút / view / ... có một UUID khác như một điều khác và trước tiên sẽ xóa cái cũ và sau đó sẽ xóa lại tạo lại nó, về cơ bản sẽ xóa tất cả nội dung của bạn.
Berdir

Ok cảm ơn bạn, nhưng nó không thân thiện với người dùng nếu không có máy chủ chuyên dụng và kiến ​​thức linux, một giải pháp tồn tại cho người dùng cơ bản / người mới bắt đầu (không có ssh và dòng lệnh, chỉ có máy chủ ftp)? Drush cần các dòng lệnh và nó không thân thiện với khách hàng của tôi.
Axel Briche 7/03/2015

Điều gì xảy ra chính xác nếu tôi thay đổi UUID trang web của một trang web Drupal hiện có (cài đặt mới) để phù hợp với cấu hình đã xuất (với drush config-set system.site uuid "abcdef-...")?
GiDo

1
Lệnh một dòng để sao chép trang cập nhật UUID. drush -y cset system.site uuid $(cat /path/to/config/system.site.yml | awk '/uuid/ { print $2 }')
ya.teck

10

Sử dụng bảng điều khiển Drupal

Bạn có thể đạt được điều tương tự với Bảng điều khiển Drupal bằng cách ghi đè phím system.site- uuid.

$ drupal config:override

Sau đó nhập tên cấu hình system.site, khóa cấu hình uuidvà giá trị phù hợp khi được nhắc.

Enter configuration name [advagg.settings]:
> system.site

Enter the configuration key [uuid]:
> uuid

Enter the configuration value:
> 656165f1-1017-45a1-9bd8-f70e31cf29ab

Configuration name system.site
------------------- -------------------------------------- -------------------------------------- 
Configuration key   Original Value                         Override Value                        
------------------- -------------------------------------- -------------------------------------- 
uuid                7622bb19-5f3f-452d-82a3-c0a88241e789   656165f1-1017-45a1-9bd8-f70e31cf29ab  
------------------- -------------------------------------- -------------------------------------- 

1
Tôi nghĩ rằng đây nên là câu trả lời được chấp nhận.
Badri

7

Bạn có thể lấy UUID của trang mà không cần truy cập vào trang hoặc cơ sở dữ liệu.

Nếu bạn không có quyền truy cập vào trang web / cơ sở dữ liệu gốc, bạn vẫn có thể đồng bộ hóa từ các tệp cấu hình được cung cấp. Cấu hình sẽ chứa UUID của trang web của bạn, vì vậy bạn cần đặt nó trước.

  1. Tìm thư mục cấu hình / đồng bộ hóa của bạn: Nếu nó được di chuyển, bạn có thể tìm thấy nơi nó được đặt settings.php. Tìm kiếm : $config_directories['sync'], sẽ liệt kê đường dẫn.

  2. Đi đến đường dẫn cấu hình đó và tìm tệp: system.site.yml Trong tệp đó, hãy tìm uuid: 86b376c5-385e-4d13-bf00-e5e5443540e3(rõ ràng bạn sẽ có một giá trị khác). Sao chép giá trị đó.

  3. Trong drush, đặt trang web của bạn vào cùng một trang uuid mà chúng tôi vừa phát hiện: drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3

  4. Đồng bộ hóa cấu hình bằng cách sử dụng drush drush cim -y

  5. Nếu bạn gặp lỗi, hãy đọc chúng . Tôi đã có:

    • một mô-đun bị thiếu (mà tôi phải tải xuống và kích hoạt)
    • nội dung từ mô-đun phím tắt mà trước tiên tôi phải xóa, tại:
    • quản trị> cấu hình> Tương tác người dùng> Phím tắt

Khi tôi đã làm điều đó, tôi chạy lại cim, và mọi thứ hoạt động như một bùa mê!

Tôi đã cài đặt một phiên bản D8 cục bộ trước khi thử khôi phục từ cấu hình được cung cấp.


4

Bạn có thể thay đổi UUID cho trang đích bằng cách sử dụng cush và cush drush.

Trước tiên hãy lấy UUID nguồn:

$ cd ~/Sites/sourcesite <-- your drupal site root
$ drush cget system.site uuid
This will return something like:
'system.site:uuid': 86b376c5-385e-4d13-bf00-e5e5443540e3 

Thay thế UUID đích

cd ~/Sites/destinationsite <-- your drupal site root
$ drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3 

Bây giờ bạn có thể:

  1. Điều hướng đến trang đích trong trình duyệt của bạn tại admin / config / Development / configure / full / import
  2. chọn lưu trữ cấu hình và chọn tải lên
  3. Bạn sẽ thấy một danh sách tất cả các mục cấu hình
  4. Cuộn xuống phía dưới và nhấp vào nút nhập tất cả

0

Nếu bạn làm theo các hướng dẫn trong câu trả lời của Gucho Ca mà vẫn gặp sự cố, hãy chắc chắn kiểm tra xem bạn có quyền ghi trong thư mục cấu hình đồng bộ hóa hay không. Nó sẽ cung cấp cho bạn thông báo lỗi tương tự, ngay cả khi uuids của bạn giống nhau, nhưng sytem của bạn không có quyền ghi.

Một cách tốt để kiểm tra là nhấp vào Tab Nhập của phần Đồng bộ hóa. Nếu bạn không có quyền truy cập tập tin chính xác, nó sẽ cho bạn biết điều đó.

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.