Tengo 2 bases de datos en 2 servidores diferentes (digamos A y B).
Tengo algunos rastreadores que usan funciones API para escribir datos en la base de datos (A). Algunos de estos datos son nuevos y otros son solo actualizaciones de filas anteriores. Si se agregan algunas filas nuevas a (A), quiero agregar la identificación de estas filas nuevas a (B).
Quiero que esto suceda en tiempo real sin un análisis completo de (A) iterativamente. Quiero algo como un disparador en (A) para enviar nuevas identificaciones a (B). ¿Cómo debo escribir este disparador? (Si cree que hay una solución mejor, ayúdeme)
puedes hacerlo usando señales django. Señales significa como disparador. si desea realizar alguna operación al crear, actualizar, eliminar modelos. Puedes usar señales. ejemplo de referencia de referencia de django
Supongamos que tiene dos modelos llamados:
class A(models.Model): name = models.CharField(max_length=128) class B(models.Model): a = models.ForeignKey(A)guarda este archivo en tu app/signals.py
from django.db.models.signals import post_save from .models import A,B def create_b(sender, instance, created, *args, **kwargs): if created: B.objects.create(a=instance) post_save.connect(create_b, sender=A) y para que estas señales funcionen correctamente, debe llamarlo en la configuración de aplicaciones. y en el archivo app.py copia esto
class ProductConfig(AppConfig): #this will be different name = 'product' # this will be different based on your app name #copy below lines only def ready(self): from .signals import * y en el archivo __init__.py de su aplicación, incluya esta línea
default_app_config = "product.apps.ProductConfig"