Management commands

SiteTree comes with two management commands which can facilitate development and deployment processes.

sitetreedump

Sends sitetrees from database as a fixture in JSON format to output.

Output all trees and items into treedump.json file example:

python manage.py sitetreedump > treedump.json

You can export only trees that you need by supplying their aliases separated with spaces:

python manage.py sitetreedump my_tree my_another_tree > treedump.json

If you need to export only tree items without trees use --items_only command switch:

python manage.py sitetreedump --items_only my_tree > items_only_dump.json

Use --help command switch to get quick help on the command:

python manage.py sitetreedump --help

sitetreeload

This command loads sitetrees from a fixture in JSON format into database.

Warning

sitetreeload won’t even try to restore permissions for sitetree items, as those should probably be tuned in production rather than exported from dev.

If required you can use Django’s loaddata management command with sitetreedump created dump, or the dumpscript from django-extensions to restore the permissions.

Command makes use of --mode command switch to control import strategy.

a) append (default) mode should be used when you need to extend sitetree data that is now in DB with that from a fixture.

Note: In this mode trees and tree items identifiers from a fixture will be changed to fit existing tree structure.

b) replace mode should be used when you need to remove all sitetree data existing in DB and replace it with that from a fixture.

Warning: Replacement is irreversible. You should probably dump sitetree data if you think that you might need it someday.

Using replace mode:

python manage.py sitetreeload --mode=replace treedump.json

Import all trees and items from treedump.json file example:

python manage.py sitetreeload treedump.json

Use --items_into_tree command switch and alias of target tree to import all tree items from a fixture there. This will not respect any trees information from fixture file - only tree items will be considered. Keep in mind also that this switch will automatically change sitetreeload commmand into append mode:

python manage.py sitetreeload --items_into_tree=my_tree items_only_dump.json

Use --help command switch to get quick help on the command:

python manage.py sitetreeload --help