在 Django 1.7 之前,当使用Django Sites Framework时,可以/应该使用Initial Fixtures定义初始数据。
myproject/fixtures/initial_data.json
[ { "pk": 1, "model": "sites.site", "fields": { "domain": "domain1", "name": "name1" } }, { "pk": 2, "model": "sites.site", "fields": { "domain": "domain2", "name": "name2" } }, { "pk": 3, "model": "sites.site", "fields": { "domain": "domain3", "name": "name3" } } ]
由于它是一个全局项目设置,我在项目根目录中添加了一个“fixtures”文件夹,并将其添加到 FIXTURE_DIRS。
# Used to search fixture files directories.
# Fixture files are files that provide initial data to be
# inserted in the database. (>python manage.py loaddata)
FIXTURE_DIRS = [
os.path.join(PROJECT_ROOT, "fixtures"),
]
现在,我使用的是 Django 1.7,建议使用migrations。引用 Django 文档:
要为您的项目设置正确的名称和域,您可以使用数据迁移。
问题是迁移是特定于应用程序的:
python manage.py makemigrations --empty yourappname
那么,使用数据迁移将站点信息添加到我的项目的推荐方法是什么?这种迁移应该住在哪里?
运行python manage.py makemigrations --empty sites
会在第三方应用程序文件夹中创建迁移,所以我们不希望这样。
不应该将 MIGRATION_DIRS 定义为初始数据存在的 FIXTURE_DIRS 吗?
我在设置文档中找到了MIGRATION_MODULES,但问题仍然存在,它是特定于应用程序的。