Ok tôi chỉ dành 8 giờ với mô-đun di chuyển. Tôi không thể tìm thấy chỉ một ví dụ hoạt động cho việc di chuyển dữ liệu sql. Ngay cả tài liệu riêng của Drupal cũng có trạng thái "lỗi thời".
Tôi đang cố gắng chỉ nhập tiêu đề - vì vậy điều đó sẽ khá đơn giản. Thật không may, tôi thậm chí không gặp lỗi khi cố gắng nhập cấu hình cũng như plugin nguồn.
test_migrate_er.info.yml - (mô-đun được bật)
tên: Thử nghiệm di chuyển ER
loại: mô-đun
description: 'Trình nhập cho các nút tin tức qua sql ("test" // Typo 3)'
gói: kiểm tra
phiên bản: PHIÊN BẢN
core_version_requirement: ^8.8.0 || ^9.0
dự án: 'test_migrate_er'
phụ thuộc:
- drupal: di chuyển
- drupal: di chuyển_tools
- drupal:di chuyển_plus
mig_plus.migration_group.test_migrate_content.yml (cái này được nhập qua "drush cim")
uuid: 366085cb-4cea-49d1-84a0-534afd31b114
mã ngôn ngữ: en
trạng thái: đúng
phụ thuộc: { }
id: test_migrate_content
nhãn:"NHẬP KIỂM TRA"
mô tả: không
source_type: null
mô-đun: không
shared_configuration: null
nguồn:
plugin: test_source
khóa: di chuyển
Kết nối cơ sở dữ liệu được đặt trong local.settings.php (nó sử dụng khóa nguồn)
$databases['migrate']['default'] = [...]
Khi nhập cấu hình thr tất cả có vẻ tốt - không có lỗi ... nhưng khi xuất nó thì nguồn bit bao gồm các thành phần phụ (plugin và khóa) sẽ biến mất như thể chúng là thuộc tính không hợp lệ. Điều đó cũng sẽ giải thích tại sao plugin/di chuyển không bao giờ được hiển thị khi thử nghiệm qua ms. Có vẻ như trình phân tích cú pháp cấu hình đang bỏ qua nó.
Plugin nguồn (/web/modules/custom/test_migrate_er/src/Plugin/migrate/source/News.php. -- mô-đun "test_migrate_er" được bật)
<?php
không gian tên Drupal\test_migrate_er\Plugin\migrate\source;
sử dụng Drupal\di chuyển\Plugin\di chuyển\source\SqlBase;
sử dụng Drupal\di chuyển\Row;
lớp Tin tức mở rộng SqlBase {
truy vấn hàm công khai() {
$query = $this->select('tx_news_domain_model_news_copy', 'n')
-> trường ('n', [
'uid',
'dấu',
'crdate',
'ngày giờ',
'Tiêu đề',
'trêu ghẹo',
'bài kiểm tra cơ thể',
]);
trả lại truy vấn $;
}
trường hàm công khai() {
trường $ = [
'uid' => $this->t('uid' ),
'tstamp' => $this->t('tstamp' ),
'crdate' => $this->t('crdate' ),
'datetime' => $this->t('datetime' ),
'tiêu đề' => $this->t('title' ),
'đoạn giới thiệu' => $this->t('đoạn giới thiệu' ),
'bodytext' => $this->t('bodytext' ),
];
trả lại các trường $;
}
hàm công khai getIds() {
trở lại [
'uid' => [
'kiểu' => 'số nguyên',
'bí danh' => 'n',
],
];
}
chức năng công cộng chuẩn bịRow(Row $row) {
trả về cha mẹ::prepareRow($row);
}
}
Bạn tìm thấy rất nhiều mã ví dụ "di chuyển" ... không phải mã nào trong số chúng nhắm mục tiêu sql và dường như không phải mã nào trong số chúng được cập nhật. Tôi tự hỏi liệu có ai biết ví dụ hoạt động hoặc ít nhất là tài liệu chính xác không. Điều đó sẽ làm cho những ngày tiếp theo thú vị hơn rất nhiều :)
Cảm ơn vì sự giúp đỡ