在 Django 1.7 之前,我曾经在设置中定义每个项目的fixtures
目录:
FIXTURE_DIRS = ('myproject/fixtures',)
并使用它来放置我的固定装置,以存储整个项目必不可少initial_data.json
的默认组。这对我来说效果很好,因为我可以通过将每个项目数据与特定于应用程序的数据分开来保持设计整洁。
现在在 Django 1.7 中,initial_data
fixtures 已被弃用,建议将数据迁移与应用程序的模式迁移一起包括在内;没有为全球每个项目的初始数据留下明显的选择。
此外,新的迁移框架会在为兼容的应用程序(包括应用程序)执行迁移之前安装所有旧的初始数据固定装置django.contrib.auth
。此行为会导致包含默认组的我的夹具安装失败,因为该auth_group
表尚不存在于数据库中。
关于如何(优雅地)在所有迁移之后或至少在身份验证应用程序迁移之后运行固定装置的任何建议?或任何其他想法来解决这个问题?我发现固定装置是提供初始数据的好方法,并且希望有一种简单而干净的方式来声明它们以进行自动安装。新的RunPython实在是太笨重了,我认为它在大多数情况下都是矫枉过正的;它似乎仅适用于每个应用程序的迁移。