Drupal 7 - 将文件迁移到自定义文件类型

Drupal 7 - Migrate files into custom file type

我正在尝试将文件迁移到具有大量自定义字段的自定义文件类型。但是,它们似乎正在迁移到 document 文件类型中,而不是迁移到我自定义创建的文件类型中。

我正在使用 MigrateDestinationFile 作为我的目的地:

$this->destination = new MigrateDestinationFile();

我试过像 this answer 这样建议的 type 映射:

$this->addFieldMapping('type')->defaultValue('custom_file_type');

此解决方案不起作用,当检查 MigrateDestinationFile 的可映射字段时,没有指定 type 字段,所以我认为这就是该解决方案不起作用的原因。

如果有人能给我指出一个如何迁移到自定义文件类型的示例,我们将不胜感激。也许我用错了destination?还是我错过了一些非常明显的东西。

迁移的其他部分与此问题无关。

显然我有两个问题。第一个是当我们创建文件类型时我们称之为 file 由于某种原因你不能将其设置为迁移目标,因为它已经在 MigrateDestinationFile 构造函数中默认(参见下面的代码)。

From file.inc:544

/**
 * Basic initialization
 *
 * @param array $options
 *  Options applied to files.      
 */
public function __construct($bundle = 'file', $file_class = 'MigrateFileUri', $options = array()) {
  parent::__construct('file', $bundle, $options);
  $this->fileClass = $file_class;
}

第二个问题是映射到字段 bundle 本身。在用不同的名称重新创建文件类型后,我只需像这样设置正确的目的地:

$this->destination = new MigrateDestinationFile('product_download');

执行此操作后,迁移的文件将以正确的内容类型而不是 document 文件类型创建。