wiktor-grochal / django-microframework

Easy synchronization of database entities between multiple django instances

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

django-microframework

Django microframework allows you for easy synchronization of database entities between multiple django instances.

Requirements

  • Python (3.6, 3.7, 3.8)
  • Django (1.11, 2.0, 2.1, 2.2)

Installation

pip install django-microframework
python manage.py migrate

Add 'microframework' to your INSTALLED_APPS setting.

INSTALLED_APPS = [
    ...
    'microframework',
]

Usage

Sender

In your models.py file:

from microframework.sender import connect_signals
connect_signals([RegularModel, JSONModel, TreeModel, ForeignKeyModel], 'example_sender')

In your settings.py:

MICROFRAMEWORK_AMQP_URI = 'pyamqp://guest:guest@172.17.0.5'
MICROFRAMEWORK_SENDER_NAME = 'example_sender'

Listener

Create service.py file:

from microframework.handler import DjangoObjectHandler, NamekoHandlerMeta
from example.models import RegularModel, JSONModel, TreeModel, ForeignKeyModel


class ListenerService(DjangoObjectHandler, metaclass=NamekoHandlerMeta):
    name = "listener_service"
    sender_name = "example_sender"
    synced_save_models = [RegularModel, JSONModel, TreeModel, ForeignKeyModel]

In your settings.py:

MICROFRAMEWORK_SERVICE_CLASS = "example.service:ListenerService"
MICROFRAMEWORK_AMQP_URI = 'pyamqp://guest:guest@172.17.0.5'

In your manage.py - this needs to be put before anything else in your code:

import eventlet
eventlet.monkey_patch()

In order to run listener service:

python manage.py run_listener

About

Easy synchronization of database entities between multiple django instances

License:Other


Languages

Language:Python 100.0%