我有一个脚本,用于将我的 Plone 实例的图像迁移到自定义类型。其部分代码示例如下所示:
class ImagesToPhotosMigrator(InplaceATItemMigrator):
src_portal_type = 'Image'
src_meta_type = 'ATBlob'
dst_portal_type = 'Photo'
dst_meta_type = 'Photo'
def last_migrate_reindex(self):
self.new.reindexObject(idxs=['object_provides', 'portal_type',
'Type', 'UID'])
fields_map = {
}
def getImagesToPhotosMigrationWalker(self):
return getMigrationWalker(self, migrator=ImagesToPhotosMigrator)
def migrateImages(self):
walker = getImagesToPhotosMigrationWalker(self)
walker.go()
return walker.getOutput()
脚本有效,但我希望迁移仅发生在特定文件夹中,例如 /my-folder
,在脚本中添加什么?
最佳答案
您应该指定您引用 Products.contentmigration ,因为它并不隐含在“内容迁移”一词中(最近迁移的种类比代码行还要多)。无论如何,这是您的解决方案(CustomQueryWalker
是关键):
from Products.contentmigration.walker import CustomQueryWalker
def getImagesToPhotosMigrationWalker(self, query):
return CustomQueryWalker(self, ImagesToPhotosMigrator, query)
def migrateImages(self):
walker = getImagesToPhotosMigrationWalker(self, {'path' : '/youfolder'})
walker.go()
return walker.getOutput()
请注意,查询参数是目录查询,因此您可以指定路径、portal_type 或目录中的任何索引。
关于python - 特定文件夹的内容迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8176065/