Skip to main content

Powerful tool for truly synchronizing data and its relationships in database tables. Truly maps Foreign Keys and their on_delete rules in Django.

Project description

DjangoSyncMaster

Description

Powerful tool for truly synchronizing data and its relationships in database tables.

  • Truly maps Foreign Keys and their on_delete rules in Django.

Django uses a migration system based on ORM (Object-Relational Mapping) to make changes to the database, However, this can become problematic when using Foreign Keys, since Django does not implement ON DELETE when synchronizing the database... This can be problematic if you want to change the data directly in the database.

This library aims to bring this automation to Django. When you perform a migration, the script will automatically read the tables created in models.py (ignoring any table that has not been declared outside of your app's models.py, this includes third-party tables and Django's own standards).

As soon as it performs a reading and separates the tables that were actually declared manually in models.py, it will create a map of your Foreign Keys and recreate them manually, one by one. With the configuration defined in your models.py.

This library aims to bring speed and automation to the development environment. (Not recommended for implementation environments)

This way, you won't need to edit a migration directly or modify the database by hand.

obs: I am not responsible for any type of data loss, as previously stated, this library aims to streamline the development environment and not to manage the implemented project.

How to use

  1. Install the package using pip:
pip install DjangoSyncMaster
  1. Add 'DjangoSyncMaster' to your Django app's apps.py file:
from django.apps import AppConfig
from django.conf import settings

from DjangoSyncMaster import sync_db

class AppNameConfig(AppConfig):
	name = 'app_Name'

	def ready(self):
		from django.db.models.signals import post_migrate # await migrate

	def handler(sender, **kwargs): # for pull Django instance info
		sync_db(sender,db_settings=settings.DATABASES)

  post_migrate.connect(handler, sender=self) #Execute function pos-migrate
  1. Make migrations
python manage.py makemigrations
python manage.py migrate

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_master_sync-0.1.0.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_master_sync-0.1.0-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file django_master_sync-0.1.0.tar.gz.

File metadata

  • Download URL: django_master_sync-0.1.0.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for django_master_sync-0.1.0.tar.gz
Algorithm Hash digest
SHA256 067ce2a4f574ce838fdbccefb2cb2853df0d659f4c8e1476a8d43dd3fecb0e66
MD5 9987f885e4d9554704f48a0f35573c1c
BLAKE2b-256 c38bb8fa927b7012ea99276a8efc1e963ff458832225f6dda8a1a9a37f60bd38

See more details on using hashes here.

File details

Details for the file django_master_sync-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_master_sync-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8dfceeef58aa60c55b4243fb2b51d5a265c1024a5b709962a6148ca2217dcc22
MD5 8b21809529f7deb5e991e83588c469a0
BLAKE2b-256 5c4b4c8028788df6bc249d07cd02dd1ea5209421f5973fa850f04a24e4b5b6ba

See more details on using hashes here.

Supported by

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