我想通过使用django.db.models.Model编写添加、更新删除到多个数据库
我可以通过在 settings.py 中设置多数据库来添加到多个数据库
所以设置文件看起来像
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': config['DB_NAME'],
'USER': config['DB_USER'],
'PASSWORD': config['DB_PASSWORD'],
'HOST': config['DB_HOST'],
'PORT': config['DB_PORT'],
},
'tableau': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'tableau',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'localhost',
'PORT': 5432,
},
}
然后我django.db.models.Model
在我的应用程序中创建子类和模型model.py
from django.db.models import Model
class MultiDbModel(Model):
class Meta:
abstract = True
def save(self, *args, **kwargs):
for dbname in settings.DATABASES:
super(MultiDbModel, self).save(using=dbname)
class People(MultiDbModel):
name = CharField(max_length=255)
country = CharField(max_length=255)
def save(self, *args, **kwargs):
super(App, self).save(args, kwargs)
因此,当我创建新对象时,它会保存到两个数据库中。
People.objects.create(name='alok', location='India')
对于这种方法,我想添加功能update
并且delete
查询也create
可以正常工作。
查询运行时会调用哪些方法update
,delete
或者如何向多个数据库添加删除和更新功能?