我是Django的新手,我正在制作一个Django应用程序,我应该通过py-mongo使用MySQL和MongoDB。 (我试图只使用py-mongo,而不是mongoengine)PyMongo和Django
我创建了一个应用'test-app',模型'Books'和一个CRUD视图似乎工作正常(所有书籍都保存并检索)。
但是,出于某种原因,我似乎无法在MySQL数据库和MongoDB中找到Books。我不确定模型使用哪个数据库。
还有Redis的设置,但即使在重新启动服务器后,模型条目也存在,所以我猜它不在缓存中。
我的设置是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.10.0.1',
'NAME': 'test_db',
'USER': 'test_user',
'PASSWORD': 'test_pass',
}
}
CACHES = {
'default': {
'BACKEND': 'redis_cache.RedisCache',
'LOCATION': '127.10.0.1:6379',
'OPTIONS': {
'DB': 0,
},
},
}
MONGODB = {
'default': {
'HOST': '127.10.0.1',
'PORT': '27017',
'NAME': 'django',
}
}
而且我requirements.txt:
Django>=1.8,<1.9
docker-compose>1.11
django-redis-cache>1.7
pymongo>=3.4
MySQL-python>=1.2
的迁移文件似乎有MongoDB的语法,而不是SQL语法,这让我觉得这实际上是存储在MongoDB:
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.CreateModel(
name='Book',
fields=[
('number', models.IntegerField(serialize=False, primary_key=True)),
('author', models.CharField(max_length=200)),
],
),
]
好像设计得很差的系统。为什么SQL和NoSQL系统并行运行会造成复杂的问题?为什么不使用一个或另一个? FYI mysql完全能够存储非关系数据,例如借助于JSON数据类型 – e4c5
这是我得到的任务。我猜想MySQL应该存储Django安装的应用程序(如auth等)的所有信息,以及模型的MongoDB。 – Kemeia