Drupal 8 geçiş modülünde yeni geçişler nasıl yenilenir?


10

Drupal 8 geçiş işlemlerini yazarken yeni geçiş işlemlerini yalnızca özel geçiş modülünü yeniden yüklersem yenileyebilirim. drush cr çalışmıyor.

Açıklama:

Bir modül var, yani: cm_migrations2 göç var:

  • cm_users
  • cm_tags

drush msGördüğüm ile :

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                                

Yeni bir taşıma işlemi yazıyorum:

  • cm_beers

Çalıştırıyorum drush cr; drush msve önceki tabloyu görüyorum.

Yalnızca kaldırıp yüklediğimde cm_migrationsüç taşıma işlemini görebilirim:

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              

Modülü yeniden yüklemeden geçiş işlemlerini nasıl yenileyebileceğime dair herhangi bir ipucu var mı?

Teşekkürler


Buna ek olarak, taşıma işlemini yürütürsem, içeriği silersem migrate.migration.cm_beers.ymlve işlemi tekrar uygularsam taşıma işleminin başarısız olmadığını söyleyebilirim . Bir yerde yaml dosyasının içeriği önbelleğe alınmış gibi görünüyor.
Ignacio Sánchez

Yanıtlar:


19

Bunun benim için işe yaradığını gördüm

drush config-import --partial --source = modüller / custom / migrate_module / config / install /


Merhaba, yukarıda belirtilen hata veriyor: Kaynak dizin yok. Kaynak bir dizin değil.
harshal

5

Bunun için bir modül var. Normalde yml dosyaları yalnızca yükleme sonrasında yüklenir.

Bu modül, hangi modül yapılandırma dosyalarının otomatik olarak alınacağını tanımlamanızı sağlar.

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

Ayrıca bu blog yayınına bakın: https://blog.liip.ch/archive/2016/05/04/using-the-new-drupal-8-migration-api-module.html

Kendi Drupal 8 geçiş modüllerinizi geliştirmek ve önbellek sorunlarıyla mücadele etmek

Tüm taşıma eşlemesinin artık yaml dosyalarında yapıldığını öğrendiniz. Peki kendi taşıma yaml dosyalarınızı yazmaya ne dersiniz?

Ne yazık ki, yeni Drupal 8 geliştiricileri için bazı tuzaklar var. Drupal 8'in Yapılandırma Yönetimi Arabirimi ( https://www.drupal.org/documentation/administer/config ) nedeniyle, “config / install” dizinindeki tüm yml dosyaları yalnızca modül yüklenirken içe aktarılır.

Yeni yapılandırma dosyaları geliştirmek istiyorsanız bu çok pratik değildir. Bunu ele almak için , önbellek sorunlarını çözen bir “Yapılandırma Geliştirme” modülü ( https://www.drupal.org/project/config_devel ) kurulabilir. Her istek üzerine belirli yml dosyalarını içe aktarmak mümkündür. Ancak maalesef drush komutları henüz desteklenmiyor. Bu yüzden almak istediğimiz tüm yaml dosyalarını module.info.yml dosyamızdaki yeni bir bölüme eklememiz gerekiyor.

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

Sonra yml dosyasını güncelledikten sonra aşağıdaki komutları çalıştırabiliriz. Bu, yeni yapılandırma dosyasını Yapılandırma Yönetimi Arayüzüne alır.

drush cdi <module_name>
drush cr

Bunu çalıştıramadım ve belgeler eksik. Biraz daha bilgi verebilir misiniz? drupal.org/node/2845304
Michael Mallett

5

Taşıma işlemleri MODULENAME/migrationsalt dizinde olmalıdır . Bir geçiş yapılandırmasını değiştirdikten sonra basit bir drush crdeğişikliklerin uygulanması yeterlidir.

Bir yapılandırma türevi bir geçiş yapılandırmasını tekrar bir geçiş eklentisine dönüştürür.

Bu değişiklik kaydına bakın: Taşıma işlemleri, yapılandırma varlıkları yerine eklentilerdir


2

Aynı sorunla uğraşıyordum: geliştirme sırasında geçiş yapılandırmasını güncelleme. İşte sonuçta:

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

config-devel-import-one, komut ( cdi1kısaca), tek yapılandırmayı etkin yapılandırmaya aktarmak için kullanılır. Yukarıda belirtilen config_devel modülünün bir parçasıdır.


1

FLY'nin çözümü ile başarılı olamadım. Ayrıca miml yenilendi almak için migrate_tools kaldırmak zorunda kaldı. Ve şans yok devel_config.

Bu yenilenmiş yapılandırmaları buldum:

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

0

Peter J Lord'un çözümünü takiben, settings.php dosyanıza bir yapılandırma dizini (yeni veya güncellenmiş ymls için) de ekleyebilirsiniz. Örneğin:

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

Bu dizine yeni yml dosyaları yerleştirin ve ardından drush'ın config-import komutuyla yeni yapılandırma ayarlarını alın:

drush cim fresh --partial 

-1

Bazen yukarıdaki çalışmaların hiçbirinin işe yaramadığını fark ettim. Hatta hepsini birleştiriyorlar. Ancak migrate_tools'u kandırabilir ve bana biraz fikir verebilirim.

Görünüşe göre yml dosyasının listelenmeden önce geçerli olup olmadığını kontrol edin. İthalatçıyı çalıştırmayı deneyin (evet, görünmese bile $ drush ms)

Taşıma işlemime ürün adı verildi, bu yüzden yaptım: $ drush mim products

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

Bu hatayı düzeltmek (benim durumumda int'i tamsayıya değiştirmek) ve sonra yukarıdaki @FLY'nin cevabını takip etmek geçişi gösterdi. Yazık hata gelmedi ve sadece sessizce başarısız oldu, ama bu başka bir konu. ;-)

PS Bunu bir yorum olarak gönderirdim, ama henüz yeterli puanım yok.


-2

Yukarıdaki FLY cevabında drush cdi <module_name>şimdi olmalı drush cde <module_name>.


2
drush cde, yapılandırmayı dışa aktarır ve sahip olduklarınızın üzerine yazar. İstediğimiz bu değil. Bu nasıl kabul edilir?
Michael Mallett
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.