Rumah > pembangunan bahagian belakang > tutorial php > Penghijrahan Drupal 8 pertama anda

Penghijrahan Drupal 8 pertama anda

Lisa Kudrow
Lepaskan: 2025-02-15 10:45:12
asal
946 orang telah melayarinya

Drupal 8 Migrasi: menyelam mendalam ke dalam pemindahan kandungan

Modul Migrasi adalah asas ekosistem Drupal, sehingga Core Drupal 8 mengintegrasikan beberapa fungsinya. Ini adalah penting untuk menggantikan peningkatan tradisional dengan kandungan dan migrasi konfigurasi dari Drupal 6 dan 7 ke Drupal 8. Walaupun Core kini termasuk kerangka asas (dalam modul migrate) dan alat menaik taraf Drupal 6/7 (dalam migrate_drupal), Banyak ciri penting kekal dalam modul yang disumbangkan. Migrate Tools sangat penting, menyediakan arahan drush dan antara muka pengguna untuk menguruskan migrasi. Selain itu, modul seperti Migrate Source CSV, Migrate Source XML, dan Migrate Source JSON menawarkan plugin untuk sumber data biasa.

Your First Drupal 8 Migration

Artikel ini menunjukkan penghijrahan Drupal 8 dengan mengimport kandungan ke dalam entiti nod. Untuk kesederhanaan, kami akan menggunakan jadual pangkalan data dalam pemasangan Drupal. Kod Lengkap boleh didapati di [Repositori ini] (link_to_repository_here - gantikan dengan pautan sebenar jika tersedia).

Konsep Utama:

    DRUPAL 8 Migrasi terdiri daripada tiga bahagian:
  • Sumber , Proses , dan Destinasi . Plugin sumber mengambil data mentah, proses plugin memanipulasinya, dan plugin destinasi simpan sebagai entiti Drupal.
  • adalah penting untuk menjalankan migrasi melalui drush (kaedah yang disyorkan). Perintah seperti Migrate Tools dan drush migrate-import --all mengawal proses. drush migrate-rollback --all

Senibina Migrasi:

Migrasi Drupal 8 menggunakan sistem plugin. Plugin sumber menyediakan data mentah, plugin proses mengubahnya, dan plugin destinasi menyimpannya ke entiti Drupal. Paip ini ditakrifkan dalam entiti konfigurasi penghijrahan (biasanya modul konfigurasi, diimport pada modul pembolehubah).

Contoh: Migrasi Filem

Contoh kami melibatkan dua jadual pangkalan data:

(id, nama, keterangan) dan movies (id, movie_id, nama). Skrip MySQL berikut mencipta jadual ini dan meminumnya dengan data sampel: movies_genres

CREATE TABLE `movies` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `description` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

CREATE TABLE `movies_genres` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `movie_id` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

INSERT INTO `movies` (`id`, `name`, `description`) VALUES
(1, 'Big Lebowsky', 'My favorite movie, hands down.'),
(2, 'Pulp fiction', 'Or this is my favorite movie?');

INSERT INTO `movies_genres` (`id`, `movie_id`, `name`) VALUES
(1, 1, 'Comedy'),
(2, 1, 'Noir'),
(3, 2, 'Crime');
Salin selepas log masuk
Salin selepas log masuk
Matlamatnya adalah untuk memindahkan filem ke dalam artikel nod dan genre ke dalam istilah taksonomi (Tags Vicabulary), mengekalkan Persatuan Genre Movie.

Migrasi genre (): migrate.migration.genres.yml

id: genres
label: Genres
migration_group: demo
source:
  plugin: genres
  key: default
destination:
  plugin: entity:taxonomy_term
process:
  vid:
    plugin: default_value
    default_value: tags
  name: name
Salin selepas log masuk
plugin sumber

(terletak di Genres.php) mentakrifkan pertanyaan, bidang, dan ID SQL. Plugin/migrate/source

Migration Movie (): migrate.migration.movies.yml

CREATE TABLE `movies` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `description` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

CREATE TABLE `movies_genres` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `movie_id` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

INSERT INTO `movies` (`id`, `name`, `description`) VALUES
(1, 'Big Lebowsky', 'My favorite movie, hands down.'),
(2, 'Pulp fiction', 'Or this is my favorite movie?');

INSERT INTO `movies_genres` (`id`, `movie_id`, `name`) VALUES
(1, 1, 'Comedy'),
(2, 1, 'Noir'),
(3, 2, 'Crime');
Salin selepas log masuk
Salin selepas log masuk

Plugin Sumber menggunakan Movies.php untuk menambah medan 'genre' yang mengandungi ID genre. prepareRow()

Pengaktifan dan pelaksanaan:

    Dayakan modul tersuai.
  1. Pasang
  2. . Migrate Tools
  3. Gunakan perintah drush (
  4. , migrate-status, migrate-import --all). migrate-rollback --all

Kesimpulan:

Contoh ini menggambarkan keupayaan penghijrahan Drupal 8. Terokai plugin sumber yang berbeza, plugin proses, dan potensi penyelesaian tersuai untuk mengendalikan keperluan penghijrahan yang pelbagai.

Soalan -soalan yang sering ditanya (Soalan Lazim): (Ini sebahagian besarnya tidak berubah dari input, kerana ia adalah faktual dan relevan.)

    Apakah prasyarat untuk berhijrah ke Drupal 8?
  • (jawapan tetap sama)
  • Bagaimana saya menyediakan laman web Drupal 8 saya untuk penghijrahan?
  • bagaimana saya melaksanakan proses penghijrahan? (jawapan tetap sama)
  • Apa yang berlaku pada kandungan saya semasa proses penghijrahan? (jawapan tetap sama)
  • Apa yang harus saya lakukan sekiranya proses penghijrahan gagal?
  • Bolehkah saya memindahkan konfigurasi laman web saya ke Drupal 8?
  • (jawapan tetap sama)
  • Bagaimana saya memindahkan tema laman web saya ke Drupal 8?
  • (jawapan tetap sama)
  • Bolehkah saya melancarkan penghijrahan? (Jawapan tetap sama)
  • Bagaimana saya mengemas kini kandungan yang dipindahkan saya di Drupal 8?
  • Bolehkah saya melakukan penghijrahan separa? (jawapan tetap sama)
  • ingat untuk menggantikan dengan pautan sebenar jika anda mempunyai satu.

Atas ialah kandungan terperinci Penghijrahan Drupal 8 pertama anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan