在CosmosDB中使用Djongo(Mongo ORM)吗?

时间:2018-08-01 12:07:05

标签: django mongodb azure-cosmosdb djongo

由于CosmosDB集成了MongoDB API,我目前正在尝试将djongoCosmosDB数据库一起使用。

我启用了“聚合管道”和“ 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数据库一起使用,但是会有所帮助:)

1 个答案:

答案 0 :(得分:0)

似乎您使用的是“ embeddedmodelfields”,请尝试使用“ djongo.models”中的models.ForeignKey。创建新数据库并运行迁移。