2011-11-26 69 views
1

我有一個遺留數據庫的SQL轉儲和一個包含圖像的文件夾,並且這些文件被某些表的某些行引用,我需要將該數據遷移到新的Django模型。具體的問題是如何「執行」上傳,但在管理命令中。將遺留數據庫遷移到Django和圖像文件

當引用的字段的表,它的相應的模型遷移,我還需要設置模型的像場,我也需要進行相應的處理文件名到upload_to參數爲ImageField

如何以編程方式從文件路徑或文件描述符填充圖像字段?

回答

0

一種方法是在settings.py中創建一個指定您的遺留數據庫的實用程序django項目。然後使用inspectdb management命令創建遺留數據庫的django模型表示。最後使用dumpdata以JSON格式獲取數據。

然後,您可以最終創建自己的JSON腳本,將舊數據插入到新模型中。

+0

我曾考慮過這個問題,但問題仍然存在,因爲路徑不正確。另外,我希望導入操作根據'upload_to'參數重新生成新的文件名。 –

+0

一個ImageField實際上只是一個CharField。所以你可以簡單地操縱它的值,就好像它是一個字符串一樣。 IE瀏覽器。做image_field = image_field.replace(「old_path /」,「new_path /」) – benjaoming

+0

這就是我現在正在做的。舊的字段值只包含圖像文件的基本名稱,所以我將該值傳遞給連接到模型的ImageField實例的'upload_to'屬性,以及正在創建的實例。然後,我將原始文件內容(包含所有圖像的目錄是腳本的參數)複製到'upload_to'調用的返回值,並加入到'MEDIA_ROOT'設置中。它可以工作,但是,它可以移植到其他類型的文件存儲,如雲服務嗎? –