1

我正在使用将方案迁移到生产。此外,我正在使用django-sitetree模块在我的站点中显示菜单。

使用命令进行架构迁移没有问题:

./manage.py schemamigration myApp --freeze sitetree --auto
./manage.py migrate myApp

但是,当我尝试通过命令迁移站点树数据时:

./manage.py datamigration myApp "new_version" --freeze sitetree

它不会生成任何已创建的站点树元素。

4

1 回答 1

1

好的,经过一些研究并感谢以下来源:Altering database tables in Django and Fixtures 和初始数据博客,似乎通过使用带有夹具的 initial_data.json 文件来传递菜单数据的更好方法。

  1. 在您的 App 文件夹中创建“fixtures”文件夹。

  2. 运行./manage.py dumpdata --format=json --indent=4 sitetree > APP_PATH/fixtures/initial_data.json如果您希望将其数据迁移到其他环境,您可以将更多应用程序添加到命令中。

  3. 保存的数据fixtures/initial_data.json将始终通过运行插入/替换./manage.py syncdb请记住,如果数据已存在于 DB 中,将被替换,这意味着您不应转储动态数据。

还有另一种使用站点树管理命令迁移站点树的方法

# Dump...
python manage.py sitetreedump > treedump.json
# Restore...
python manage.py sitetreeload --mode=replace treedump.json

感谢您对这个链接的空闲签名

于 2013-05-01T00:57:24.393 回答