我想在Django的转储不论我使用的数据库,并可以在以后加载。 命令“dumpdata”是为这个完美的,但它是印刷上的控制台输出。 更多在我使用call_command功能,所以我不能,因为它是在控制台上打印输出的内容存储在任何变量调用它。
请让我知道如何存储转储文件使用dumpdata或其他任何命令或API。
谢谢
我想在Django的转储不论我使用的数据库,并可以在以后加载。 命令“dumpdata”是为这个完美的,但它是印刷上的控制台输出。 更多在我使用call_command功能,所以我不能,因为它是在控制台上打印输出的内容存储在任何变量调用它。
请让我知道如何存储转储文件使用dumpdata或其他任何命令或API。
谢谢
您可以选择一个文件,把dumpdata输出到如果使用从调用它的Python内call_command
,例如:
from django.core.management import call_command
output = open(output_filename,'w') # Point stdout at a file for dumping data to.
call_command('dumpdata','model_name',format='json',indent=3,stdout=output)
output.close()
但是,如果你试图从如从命令行调用这个--stdout=filename.json
你dumpdata命令的结束,它给出了错误manage.py: error: no such option: --stdout
。
因此,它是存在的,你只需要一个Python脚本中,而不是在命令行上调用它。 如果你想把它当作一个命令行选项,然后重定向(如其他人所说)是你最好的选择。
你只需要使用它这样:
./manage.py dumpdata > data_dump.json
这一行动之后,会有data_dump.json
在其中执行该命令的目录文件。
有多种选择与未来,但你可能已经知道了。 你需要知道的事情是如何从标准输出输出重定向到一些文件 :你通过将执行该操作>
之前的文件名。
要附加一些东西到文件中,可以使用>>
,但因为你是从倾倒Django的数据和输出是最有可能的JSON,你不会希望出现这种情况(因为它会使JSON无效)。
django-admin.py dumpdata
输出到标准输出与指定的应用程序(一个或多个)相关联的数据库中的所有数据。
如你所知,你可以重定向标准输出到一个文件:
command > file.data
由于它是提到在文档 ,以转储大型数据集可以避开部分造成的问题,并分别对待。
下面的命令不一般工作:
python manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json
python manage.py loaddata db.json
如果您以后可以导出排除的数据:
python manage.py dumpdata auth.permission > auth.json
python manage.py loaddata auth.json
在Linux中,你可以管控制台输出到文件。
manage.py dumpdata>文件