我正在使用南将计划迁移到生产环境。我也使用 django-sitetree 模块在我的网站上显示菜单。
使用命令进行架构迁移没有问题:
./manage.py schemamigration myApp --freeze sitetree --auto
./manage.py migrate myApp
但是当我尝试通过命令迁移sitetree数据时:
./manage.py datamigration myApp "new_version" --freeze sitetree
它不会生成任何已创建的sitetree元素。
答案 0 :(得分:1)
好的,经过一些研究并感谢这些来源:Altering database tables in Django和Fixtures and initial data博客,似乎是通过使用带有灯具的initial_data.json文件传递菜单数据的更好方法。
在App文件夹中创建“fixtures”文件夹。
运行./manage.py dumpdata --format=json --indent=4 sitetree > APP_PATH/fixtures/initial_data.json
如果您希望将数据迁移到其他环境,可以向该命令添加更多应用。
保存到fixtures/initial_data.json
的数据将始终通过运行./manage.py syncdb
插入/替换。请记住,如果数据已存在于DB中,则会替换数据,这意味着您不应该转储数据动态数据。
还有另一种使用sitetree management command
迁移网真树的方法# Dump...
python manage.py sitetreedump > treedump.json
# Restore...
python manage.py sitetreeload --mode=replace treedump.json
感谢idle-sign提供此链接