django-sitetree如何将数据迁移到生产服务器

时间:2013-04-24 02:19:37

标签: django django-south data-migration django-sitetree

我正在使用将计划迁移到生产环境。我也使用 django-sitetree 模块在我的网站上显示菜单。

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

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

但是当我尝试通过命令迁移sitetree数据时:

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

它不会生成任何已创建的sitetree元素。

1 个答案:

答案 0 :(得分:1)

好的,经过一些研究并感谢这些来源:Altering database tables in DjangoFixtures and initial data博客,似乎是通过使用带有灯具的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中,则会替换数据,这意味着您不应该转储数据动态数据。

  4. 还有另一种使用sitetree management command

    迁移网真树的方法
    # Dump...
    python manage.py sitetreedump > treedump.json
    # Restore...
    python manage.py sitetreeload --mode=replace treedump.json
    

    感谢idle-sign提供此链接