2017-06-12 39 views
1

所以我用django製作了一個dumpdata,但是我的文件非常大。使用loaddata和dumpdata在django中製作多部分導出/導入

有沒有人有任何提示如何使用django中的dumpdata和loaddata進行多部分導出和導入?

我主要是一個應用程序,採取最大的大小,所以我可以通過應用程序分開。

感謝和問候

+0

導入很簡單。只需打開文件並將其分爲兩部分或三部分。它基本上是json –

回答

0

這可能是一種複雜的,但我會盡量簡單。首先,您需要列出應用中的所有模型。

for model in django.apps.apps.get_models(): 
    print(model.__name__) 
    subprocess.call('python', 'manage.py', 'dumpdata', model.__name__) 

你可以根據你的需要,你是否希望將其存儲在一個文件或任何修改此subprocess.call。就像你可以將模型的數據保存到文件中一樣。

>>> python manage.py dumpdata app._name.model_name > model_name_dump.json 

以同樣的方式,你也可以使用loaddata。下面是JSON轉儲的例子:

[ 
    { 
    "model": "app.user", 
    "pk": 1, 
    "fields": { 
     "password": "pbkdf2_sha256$30000$1LwvC3DJb6RI$P4nYQK/9UyDEiZpEJjfl0SATBiL5l8dRZ61QE83TzS4=", 
     "last_login": "2017-06-09T11:41:26Z", 
     "email": "[email protected]", 
     "is_active": true, 
     "is_account_active": true, 
     "first_name": "arpit", 
     "last_name": "solanki", 
     "created_at": "2017-06-09T11:40:59Z", 
     "is_superuser": false, 
     "groups": [ 
     2 
     ], 
     "user_permissions": [] 
    } 
    } 
    { 
    "model": "app.user", 
    "pk": 2, 
    "fields": { 
     "password": "pbkdfjgkf2_sha256$30000$1LwvC3DJb6RI$P4nYQK/9UyDEiZpEJjfl0SATBiL5l8dRZ61QE83TzS4=", 
     "last_login": "2017-06-09T11:41:26Z", 
     "email": "[email protected]", 
     "is_active": true, 
     "is_account_active": true, 
     "first_name": "arpit", 
     "last_name": "solnki", 
     "created_at": "2017-06-09T11:40:59Z", 
     "is_superuser": false, 
     "groups": [ 
     2 
     ], 
     "user_permissions": [] 
    } 
    } 
. . 
. . 
] 

它也很容易拆分JSON轉儲到多個小文件,因爲它有一個非常固定結構。

+0

我也有一個模型佔用了90%的空間:/但是,謝謝 – user462794

+0

做了一件事情,在一個像崇高一樣的好的文本編輯器中打開該文件並使用json美化它。你將能夠看到json的結構,然後你就會知道它很容易編寫一個將你的大文件分割成小文件的腳本 –

+0

@ user462794現在更好還是還需要別的東西。 –

相關問題