Saat menulis proses migrasi Drupal 8, saya hanya dapat menyegarkan proses migrasi baru jika saya menginstal ulang modul migrasi khusus. cr drush tidak bekerja.
Penjelasan:
Saya punya satu modul, yaitu:, cm_migrations
yang memiliki 2 migrasi:
cm_users
cm_tags
Dengan drush ms
saya melihat:
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
Saya menulis proses migrasi baru:
cm_beers
Saya mengeksekusi drush cr; drush ms
dan saya melihat tabel yang sama seperti sebelumnya.
Hanya ketika saya menghapus dan menginstal cm_migrations
saya dapat melihat tiga proses migrasi:
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
Adakah petunjuk tentang bagaimana cara menyegarkan proses migrasi tanpa menginstal ulang modul?
Terima kasih
migrate.migration.cm_beers.yml
dan menjalankan lagi proses, migrasi tidak gagal. Tampaknya di-cache konten file yaml di suatu tempat.Jawaban:
Saya menemukan ini bekerja untuk saya
sumber
Ada modul untuk itu. Karena biasanya file yml hanya dimuat saat diinstal.
Modul ini memungkinkan Anda menentukan file konfigurasi modul apa yang diimpor secara otomatis.
https://www.drupal.org/project/config_devel
Juga lihat posting blog ini: https://blog.liip.ch/archive/2016/05/04/using-the-new-drupal-8-migration-api-module.html
Anda telah belajar, bahwa seluruh pemetaan migrasi sekarang dilakukan dalam file yaml. Tapi bagaimana dengan menulis file migrasi yaml Anda sendiri?
Sayangnya, ada beberapa jebakan untuk pengembang Drupal 8 baru. Karena Antarmuka Manajemen Konfigurasi ( https://www.drupal.org/documentation/administer/config ) dari Drupal 8, semua file yml di direktori "config / install" hanya diimpor ketika menginstal modul.
Ini sangat tidak praktis jika Anda ingin mengembangkan file konfigurasi baru. Untuk mengatasinya, modul "Pengembangan Konfigurasi" ( https://www.drupal.org/project/config_devel ) yang menyelesaikan masalah caching dapat diinstal. Dimungkinkan untuk mengimpor file yml tertentu pada setiap permintaan. Namun sayangnya perintah drush belum didukung. Jadi kita perlu menambahkan semua file yaml yang ingin kita impor ke bagian baru di module.info.yml kita.
Kemudian kita dapat menjalankan perintah berikut setelah memperbarui file yml. Ini akan mengimpor file konfigurasi baru ke Antarmuka Manajemen Konfigurasi.
sumber
Migrasi harus di
MODULENAME/migrations
subdirektori. Setelah memodifikasi konfigurasi migrasi,drush cr
cukup sederhana untuk menerapkan perubahan.Deriver config akan mengubah konfigurasi migrasi kembali menjadi plugin migrasi.
Lihat catatan perubahan ini: Migrasi adalah plugin bukan entitas konfigurasi
sumber
Saya kesulitan dengan masalah yang sama: cara memperbarui konfigurasi migrasi selama pengembangan. Inilah yang akhirnya saya dapatkan:
config-devel-import-one
, perintah (cdi1
singkatnya) dimaksudkan untuk mengimpor konfigurasi tunggal ke konfigurasi aktif. Ini adalah bagian dari modul config_devel yang disebutkan di atas.sumber
Saya tidak berhasil dengan solusi FLY. Harus uninstall juga migrate_tools, untuk mendapatkan yaml di-refresh. Dan tidak berhasil dengan
devel_config
.Saya memang menemukan konfigurasi yang disegarkan ini:
sumber
Menindaklanjuti solusi Peter J Lord, Anda juga dapat menambahkan direktori config (untuk ymls baru atau yang diperbarui) ke file settings.php Anda. misalnya:
Tempatkan file yml baru di direktori itu dan kemudian impor pengaturan konfigurasi baru dengan perintah config-import drush:
sumber
Saya telah menemukan bahwa kadang-kadang tidak ada yang berhasil. Bahkan menggabungkan semuanya. Namun saya bisa menipu migrate_tools agar memberi saya wawasan.
Rupanya ada pemeriksaan apakah file yml valid sebelum terdaftar. Coba jalankan importir (ya, bahkan jika itu tidak muncul
$ drush ms
)Migrasi saya disebut produk, jadi saya melakukannya:
$ drush mim products
Migration failed with source plugin exception: The "int" plugin does not exist.
Memperbaiki kesalahan ini (mengubah int ke integer dalam kasus saya) dan kemudian mengikuti jawaban @ FLY di atas membuat migrasi muncul. Malu kesalahan tidak muncul dan hanya gagal diam-diam, tapi itu topik lain. ;-)
PS Saya akan memposting ini sebagai komentar, tetapi saya belum memiliki poin yang cukup.
sumber
Dalam jawaban oleh FLY di atas,
drush cdi <module_name>
seharusnya sekarangdrush cde <module_name>
.sumber