django-cartodb-sync

A Django app that helps keep CartoDB tables synchronized with Django models.


License
BSD-3-Clause
Install
pip install django-cartodb-sync==0.3.0

Documentation

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.