将 Djongo (Mongo ORM) 与 CosmosDB 一起使用?
Posted
技术标签:
【中文标题】将 Djongo (Mongo ORM) 与 CosmosDB 一起使用?【英文标题】:Using Djongo (Mongo ORM) with CosmosDB? 【发布时间】:2019-01-09 00:03:33 【问题描述】:我目前正在尝试将 djongo 与 CosmosDB 数据库一起使用,因为 CosmosDB 集成了 MongoDB API。
我启用了“聚合管道”和“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】:您似乎正在使用“embeddedmodelfields”,请尝试使用“djongo.models”中的models.ForeignKey。创建新数据库并运行迁移。
【讨论】:
以上是关于将 Djongo (Mongo ORM) 与 CosmosDB 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
mongo_aggregate() 的 Djongo 映射器问题
使用Mongoose(ORM)将多个应用程序与一个mongo数据库连接