phy*_*ion 5 django fixtures django-fixtures
我有一个包含 3 个模型的应用程序,这些模型以父子方式相互引用:
class A(Model):
# ...
class B(Model):
a = ForeignKey(A)
# ...
class C(Model):
b = ForeignKey(B)
# ...
Run Code Online (Sandbox Code Playgroud)
在我的生产数据库中,我有数百个 A 类型的对象,其下面有数千个子对象。我现在只想为少数(特定)对象创建一个固定装置。如果我运行这个命令,我的输出将变得巨大:
python manage.py dumpdata ca_myapp -o /tmp/my_app_dump.json
Run Code Online (Sandbox Code Playgroud)
但是,当我使用此命令限制输出时:
python manage.py dumpdata ca_myapp.A -o /tmp/myapp_dump.json --pks pk1, pk2, pk3
Run Code Online (Sandbox Code Playgroud)
然后只有 A 对象被反序列化,而不是它们的子对象。如何轻松创建包含少量对象及其子对象的夹具文件?
django-admin dumpdata [app_label[.ModelName] [app_label[.ModelName]...]]
所以在你的情况下
python manage.py dumpdata ca_myapp.A ca_myapp.B ca_myapp.C
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用排除
--排除排除, -e 排除防止转储特定应用程序或模型(以 app_label.ModelName 的形式指定)。如果指定模型名称,输出将仅限于该模型,而不是整个应用程序。您还可以混合应用程序名称和型号名称。
如果要排除多个应用程序,请多次传递 --exclude
如果我没有正确理解问题,并且您询问是否可以仅选择几个 pks 并遵循它们目前无法使用 dumpdata 的关系,但您可以轻松地准备数据库以仅保存必要的数据。
归档时间: |
|
查看次数: |
5857 次 |
最近记录: |