我是django的新手,我创建了一个项目和应用程序,我想将我的项目连接到mongodb。输入python manage.py migrate
命令时,出现以下错误。
我删除了数据库,并清除了django_migration表中的所有迁移,并删除了创建的migrations文件夹中的迁移文件。仍然出现相同的错误。
请帮助我。预先感谢
错误:
raise TypeError("documents must be a non-empty list")
TypeError: documents must be a non-empty list
上述异常是以下异常的直接原因:
djongo.sql2mongo.SQLDecodeError: FAILED SQL: INSERT INTO "django_migrations" ("app", "name", "applied") VALUES (%(0)s, %(1)s, %(2)s)
Version: 1.2.31
Settings.py
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'DB_name',
'HOST':'localhost',
# 'PORT': 27017,
# 'USER':'',
# 'PASSWORD':''
},
models.py
from django.db import models
# Create your models here.
class dummy(models.Model):
name= models.CharField(max_length=100, blank=True, null= True)
答案 0 :(得分:2)
我已经用 return (
<label>Username
<TextInput
style={{ height: 40, borderColor: 'gray', borderWidth: 1 }}
onChangeText={text => onChangeText(text)}
value={value}
/>
</label>
);
更新了 djongo 并且我已经完成了迁移 pip install --upgrade djongo
并且它已经得到修复。
答案 1 :(得分:0)
我对您有同样的问题,我尝试使用sqlite3作为数据库,并且数据就像这样:
所以数据不为空!
然后,我尝试按照以下方式更改sql命令(sql2mongo \ query.py中的第760行):
statement = statement[0]
sm_type = statement.get_type()
if sm_type=='INSERT':
self._sql = 'INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ("test", "windy", "2019-03-15 12:00")'
但仍然失败。
答案 2 :(得分:0)
我已经解决了这个问题,问题可能出在sqlparse的版本上-sqlparse 0.2.4很好用,但是sqlparse 0.3.0不好。
pip install sqlparse == 0.2.4 --user
对我有用,祝你好运!
答案 3 :(得分:0)
答案 4 :(得分:0)
创建Django项目后,通过键入
卸载 sqlparsepip3 uninstall sqlparse
然后通过键入安装sqlparse版本= 0.2.4
pip3 install sqlparse==0.2.4
然后通过键入
迁移mongodb数据库python3 manage.py migrate
如果您使用的是 python2 ,则使用( pip )代替( pip3 )和( python )而不是命令中的( python3 )。
答案 5 :(得分:0)
第一次迁移项目时使用python manage.py migrate --fake-initial
。
在setting.py中添加
INSTALLED_APPS=[
'APP_NAME.apps.APP_NAMEConfig',
...,
...,
]
答案 6 :(得分:0)
我已经通过sqlparse==0.2.4
和djongo==1.3.3
和django==2.1.7
的方式解决了它