如何让数据库转储文件在Django(How to make db dumpfile in djang

2019-07-30 12:08发布

我想在Django的转储不论我使用的数据库,并可以在以后加载。 命令“dumpdata”是为这个完美的,但它是印刷上的控制台输出。 更多在我使用call_command功能,所以我不能,因为它是在控制台上打印输出的内容存储在任何变量调用它。

请让我知道如何存储转储文件使用dumpdata或其他任何命令或API。

谢谢

Answer 1:

可以选择一个文件,把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脚本中,而不是在命令行上调用它。 如果你想把它当作一个命令行选项,然后重定向(如其他人所说)是你最好的选择。



Answer 2:

你只需要使用它这样:

./manage.py dumpdata > data_dump.json

这一行动之后,会有data_dump.json在其中执行该命令的目录文件。

有多种选择与未来,但你可能已经知道了。 你需要知道的事情是如何从标准输出输出重定向到一些文件 :你通过将执行该操作>之前的文件名。

要附加一些东西到文件中,可以使用>> ,但因为你是从倾倒Django的数据和输出是最有可能的JSON,你不会希望出现这种情况(因为它会使JSON无效)。



Answer 3:

django-admin.py dumpdata

输出到标准输出与指定的应用程序(一个或多个)相关联的数据库中的所有数据。

如你所知,你可以重定向标准输出到一个文件:

command > file.data


Answer 4:

由于它是提到在文档 ,以转储大型数据集可以避开部分造成的问题,并分别对待。

下面的命令不一般工作:

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


Answer 5:

在Linux中,你可以管控制台输出到文件。

manage.py dumpdata>文件



文章来源: How to make db dumpfile in django