Skip to main content

MySQL DB change events by reading replication logs

Project description

django-myql-migration

MySQL DB change events by reading replication logs. These are useful when the data is directly inserted into the MySQL database.

Installation

Install via pip

pip install django-myql-migration

Add "django_myql_migration" to your INSTALLED_APPS settings like this:

INSTALLED_APPS = (
    "django_myql_migration",
    ...
)

Edit my.cnf to setup replication, as follows:

[mysqld]
log-bin=mysql-bin
server-id=1
binlog-format=row
gtid_mode=ON
log-slave_updates=true
enforce_gtid_consistency
binlog-row-metadata=FULL
binlog-row-image=FULL

Set these environment variables MYSQL_HOST, MYSQL_PORT, MYSQL_DATABASE, MYSQL_SLAVE_USER, MYSQL_SLAVE_PASSWORD

Add replication user using the following command

mysql -u root -p -h ${MYSQL_HOST} -P ${MYSQL_PORT} ${MYSQL_DATABASE} -e "CREATE USER '${MYSQL_SLAVE_USER}'@'%' IDENTIFIED BY '${MYSQL_SLAVE_PASSWORD}'; GRANT REPLICATION SLAVE, REPLICATION CLIENT, SELECT ON *.* TO '${MYSQL_SLAVE_USER}'@'%';FLUSH PRIVILEGES;"

Usage

There are 3 signals generated by the package: row_inserted, row_deleted and row_updated. You can use the standard Django signal handling mechanism to handle signals. e.g. To know when the user is added to the system, you can create a signals.py file with the following content

from django_mysql_replication.signals import row_inserted
from django.contrib.auth import get_user_model

User = get_user_model()

@receiver(row_inserted, sender=User)
def user_added(sender, instance, *args, **kwargs):
    pass

Run the following command to listen to DB changes

python manage.py listen

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-mysql-replication-0.1.3.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

django_mysql_replication-0.1.3-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page