django-cartodb-sync
A Django app that helps keep CartoDB tables synchronized with Django models.
Requirements
Django >= 1.8, cartodb-python, a CartoDB account.
Installation
Use pip.
Add to INSTALLED_APPS
:
INSTALLED_APPS += ( 'cartodbsync', )
Then add the appropriate configuration details to your settings
.
You will need some way of letting django-cartodb-sync
about instances that
need to be inserted, updated, or deleted. The simplest way is to use signals
and the SyncEntry
methods mark_as_pending_delete
,
mark_as_pending_insert
, and mark_as_pending_update
.
Finally, configure a cron job to run the cartodbsync
management command.
If you have existing model instances, mark all for insertion by running:
django-admin.py cartodbsync --markinsert
Configuration
Add the following to your settings
:
CARTODB_SYNC = { 'API_KEY': '<your api key>', 'DOMAIN': '<your CartoDB domain>', 'MODELS': [ { 'CARTODB_TABLE': '<model CartoDB table>', 'MODEL_CLASS': '<example.Model>', 'SYNCHRONIZER_CLASS': '<example.Synchronizer>', } ] }
Everything between <
and >
should be replaced with appropriate details.
You can list as many models as you like within the MODELS
entry.