Làm cách nào để làm mới các lần di chuyển mới trong mô-đun di chuyển Drupal 8?


10

Khi viết quy trình di chuyển Drupal 8, tôi chỉ có thể làm mới các quy trình di chuyển mới nếu tôi cài đặt lại mô-đun di chuyển tùy chỉnh. drush cr không hoạt động.

Giải trình:

Tôi có một mô-đun, tức là : cm_migrations, có 2 lần di chuyển:

  • cm_users
  • cm_tags

Với drush mstôi thấy:

Group: beer     Status  Total  Imported  Unprocessed  Last imported       
 cm_users        Idle    3      3         0            2016-02-09 16:56:25 
 cm_tags         Idle    4      0         4                                

Tôi viết một quy trình di chuyển mới:

  • cm_beers

Tôi thực hiện drush cr; drush msvà tôi thấy cùng một bảng như trước đây.

Chỉ khi tôi gỡ cài đặt và cài đặt, cm_migrationstôi mới có thể thấy ba quy trình di chuyển:

Group: beer     Status  Total  Imported  Unprocessed  Last imported       
 cm_users        Idle    3      3         0            2016-02-09 16:56:25 
 cm_tags         Idle    4      0         4                          
 cm_beers        Idle    4      0         4              

Bất kỳ manh mối nào về cách tôi có thể làm mới các quy trình di chuyển mà không cần cài đặt lại mô-đun?

Cảm ơn


Ngoài ra, tôi có thể nói rằng nếu tôi thực hiện quy trình di chuyển, xóa nội dung migrate.migration.cm_beers.ymlvà thực hiện lại quy trình, việc di chuyển không thất bại. Nó dường như được lưu trữ nội dung của tệp yaml ở đâu đó.
Ignacio Sánchez

Câu trả lời:


18

Tôi thấy điều này làm việc cho tôi

drush config-import --partial --source = module / custom / Migrate_module / config / install /


Xin chào, ở trên đưa ra lỗi sau: Thư mục nguồn không tồn tại. Nguồn không phải là một thư mục.
khắc nghiệt

5

Có một mô-đun cho điều đó. Vì thông thường các tệp yml chỉ được tải khi cài đặt.

Mô-đun này cho phép bạn có thể xác định tệp cấu hình mô-đun nào được nhập tự động.

https://www.drupal.org/project/config_devel

Cũng xem bài đăng trên blog này: https://blog.liip.ch/archive/2016/05/04/USE-the-new-drupal-8-migration-api-module.html

Phát triển mô-đun Drupal 8 của riêng bạn và chống lại các sự cố bộ đệm

Bạn đã học được rằng toàn bộ ánh xạ di chuyển hiện được thực hiện trong các tệp yaml. Nhưng làm thế nào về việc viết các tập tin yaml di chuyển của riêng bạn?

Thật không may, có một số cạm bẫy cho các nhà phát triển Drupal 8 mới. Do Giao diện quản lý cấu hình ( https://www.drupal.org/documentation/ad Manageer / config) của Drupal 8, tất cả các tệp yml trong thư mục cấu hình / cài đặt của chế độ cài đặt chỉ được nhập khi cài đặt mô-đun.

Điều này rất không thực tế nếu bạn muốn phát triển các tệp cấu hình mới. Để giải quyết vấn đề này, một mô-đun Phát triển cấu hình mô-đun, ( https://www.drupal.org/project/config_devel ) để giải quyết các vấn đề bộ đệm có thể được cài đặt. Có thể nhập các tệp yml nhất định trên mỗi yêu cầu. Nhưng thật không may, các lệnh drush vẫn chưa được hỗ trợ. Vì vậy, chúng tôi cần thêm tất cả các tệp yaml mà chúng tôi muốn nhập vào một phần mới trong module.info.yml của chúng tôi.

config_devel:
 install:
   - migrate_plus.migration.page_node
   - migrate_plus.migration.menu_item
   - migrate_plus.migration_group.liip

Sau đó chúng ta có thể chạy các lệnh sau sau khi cập nhật tệp yml. Điều này sẽ nhập tệp cấu hình mới vào Giao diện quản lý cấu hình.

drush cdi <module_name>
drush cr

Tôi không thể làm việc này và tài liệu còn thiếu. Bạn có thể cung cấp thêm một chút thông tin? drupal.org/node/2845304
Michael Mallett

5

Di chuyển nên trong MODULENAME/migrationsthư mục con. Sau khi sửa đổi cấu hình di chuyển, một đơn giản drush crđủ để áp dụng các thay đổi.

Trình tạo cấu hình sẽ biến cấu hình di chuyển trở lại thành plugin di chuyển.

Xem bản ghi thay đổi này: Di chuyển là plugin thay vì thực thể cấu hình


2

Tôi đã vật lộn với cùng một vấn đề: làm thế nào để cập nhật cấu hình di chuyển trong quá trình phát triển. Đây là những gì tôi đã kết thúc với:

drush cdi1 path-to-config-dir-form-site-root/your-config.yml

config-devel-import-one, lệnh ( cdi1viết tắt) được dự định để nhập cấu hình đơn vào cấu hình hoạt động. Nó là một phần của mô-đun config_devel được đề cập ở trên.


1

Tôi đã không thành công với giải pháp của FLY. Phải gỡ cài đặt Migrate_tools, để làm mới yaml. Và không có may mắn với devel_config.

Tôi đã tìm thấy cấu hình được làm mới này:

$ drush @site_alias pmu mymodule, migrate_tools, migrate_plus -y
$ drush @site_alias en mymodule, migrate_tools, migrate_plus -y

0

Theo dõi giải pháp của Peter J Lord, bạn cũng có thể thêm thư mục cấu hình (cho các yml mới hoặc được cập nhật) vào tệp settings.php của bạn. ví dụ:

$config_directories['fresh'] = 'sites/default/fresh';

Đặt các tệp yml mới vào thư mục đó và sau đó nhập cài đặt cấu hình mới bằng lệnh config-import của drush:

drush cim fresh --partial 

-1

Tôi đã thấy rằng đôi khi không có công việc nào ở trên. Thậm chí kết hợp tất cả chúng. Tuy nhiên tôi có thể lừa Migrate_tools giúp tôi hiểu thêm.

Rõ ràng có một kiểm tra nếu tập tin yml là hợp lệ trước khi nó được liệt kê. Hãy thử chạy trình nhập khẩu (có, ngay cả khi nó không hiển thị với $ drush ms)

Di chuyển của tôi được gọi là sản phẩm, vì vậy tôi đã làm: $ drush mim products

Migration failed with source plugin exception: The &quot;int&quot; plugin does not exist.

Sửa lỗi này (thay đổi int thành số nguyên trong trường hợp của tôi) và sau đó làm theo câu trả lời của @FLY ở trên đã khiến quá trình di chuyển hiển thị. Xấu hổ vì lỗi không xuất hiện và nó chỉ thất bại trong âm thầm, nhưng đó là một chủ đề khác. ;-)

Tái bút: Tôi đã đăng bài này như một bình luận, nhưng tôi chưa có đủ điểm.


-2

Trong câu trả lời của FLY ở trên, drush cdi <module_name>bây giờ nên drush cde <module_name>.


2
drush cde xuất cấu hình và ghi đè những gì bạn có. Đó không phải là những gì chúng ta muốn. Làm thế nào điều này được chấp nhận?
Michael Mallett
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.