由于CosmosDB集成了MongoDB API,我目前正在尝试将djongo与CosmosDB数据库一起使用。
我启用了“聚合管道”和“ 3.4有线协议”,因为Djongo要求MongoDB 3.4可以正常工作。
使用此设置,我无法通过初始Django迁移。我在本地MongoDB实例上没有任何问题。
这是运行python manage.py migrate
时的djongo输出:
djongo.sql2mongo.SQLDecodeError: FAILED SQL: CREATE TABLE "django_migrations" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "app" char NOT NULL, "name" char NOT NULL, "applied" datetime NOT NULL)
Pymongo error: OrderedDict([('_t', 'OKMongoResponse'), ('ok', 0), ('code', 48), ('errmsg', "a collection 'iot_data.__schema__' already exists"), ('$err', "a collection 'iot_data.__schema__' already exists")])
我在CosmosDB的数据浏览器中看到已经创建了两个集合:__schema__
和django_migrations
,但是django_migrations
为空。
我以前没有使用no-sql的经验,所以也许我误会了一些东西。
我不知道是否有人已经尝试将Djongo与CosmosDB数据库一起使用,但是会有所帮助:)
答案 0 :(得分:0)
似乎您使用的是“ embeddedmodelfields”,请尝试使用“ djongo.models”中的models.ForeignKey。创建新数据库并运行迁移。