我试图在我的 Django 项目中使用多个数据库,即 MongoDB 和 MySQL。
# settings.py
DATABASES = {
'default': {
'NAME': 'sql_db',
'ENGINE': 'django.db.backends.mysql',
'USER': 'root',
'PASSWORD': 'root'
},
'mongoproject': {
'ENGINE' : 'djongo',
'NAME': 'mongo_db'
}
}
我为例如创建我的模型
# App/models.py
class ForSQL(models.Model):
Name = models.CharField(max_length=50)
City = models.CharField(max_length=50)
我想把它保存在 MySQL 中。为此,我将运行 manage.py makemigrations,然后运行 manage.py migrate。它将保存在 MySQL 中。
但是当我在 models.py 文件中添加一个表时,例如:
# App/models.py
class Mongo(models.Model):
Name = models.CharField(max_length=50)
City = models.CharField(max_length=50)
我想将此表保存在 MongoDB 中。如果我运行 manage.py makemigrations 然后运行 manage.py migrate --database=mongoproject,它会在 MongoDB 中保存“Mongo”表,并且由于之前的迁移,它还会在 MongoDB 中保存“ForSQL”表。
我需要帮助设置路由器以区分每个表上的迁移。我寻找这个解决方案,但无法让他们工作。