Python 使用图像文件将遗留数据库迁移到Django

Python 使用图像文件将遗留数据库迁移到Django,python,django,data-migration,filefield,Python,Django,Data Migration,Filefield,我有一个遗留数据库的SQL转储和一个包含图像的文件夹,这些图像被某些表的某些行引用,我需要将这些数据迁移到新的Django模型。具体的问题是如何“执行”上传,但在管理命令中 当带有引用字段的表迁移到其相应的模型时,我还需要设置模型的图像字段,并且我还需要根据ImageField的upload\u to参数相应地处理文件名 如何以编程方式从文件路径或文件描述符填充图像字段?一种方法是创建一个实用工具django项目,在settings.py中指定旧数据库。然后使用inspectdb管理命令创建遗留

我有一个遗留数据库的SQL转储和一个包含图像的文件夹,这些图像被某些表的某些行引用,我需要将这些数据迁移到新的Django模型。具体的问题是如何“执行”上传,但在管理命令中

当带有引用字段的表迁移到其相应的模型时,我还需要设置模型的图像字段,并且我还需要根据
ImageField
upload\u to
参数相应地处理文件名


如何以编程方式从文件路径或文件描述符填充图像字段?

一种方法是创建一个实用工具django项目,在settings.py中指定旧数据库。然后使用inspectdb管理命令创建遗留数据库的django模型表示。最后使用dumpdata以JSON格式获取数据


最后,您可以创建自己的JSON脚本,将旧数据插入新模型中。

我已经考虑过这一点,但问题仍然存在,因为路径不正确。另外,我希望导入操作根据
upload\u to
参数重新生成新的文件名。因此,您可以简单地操作它的值,就像它是一个字符串一样。例如,do image\u field=image\u field.replace(“old\u path/”,“new\u path/”),这就是我现在正在做的。旧字段值仅包含图像文件的基本名称,因此我将该值与正在创建的实例一起传递给附加到模型的ImageField实例的
upload\u to
属性。然后,我将原始文件内容(包含所有图像的目录是脚本的一个参数)复制到返回值
upload\u to
call,并加入
MEDIA\u ROOT
设置。它可以工作,但是,这是否可以移植到其他类型的文件存储,如云服务?从我对文档的理解来看,文件字段始终是CharField,它甚至可以验证内容是否是有效的unix路径。任何类型的存储系统都只会获取这样的数据,即检索存储的实际数据的密钥,无论数据是在云中还是在磁盘上。