Django model creation from existing MongoDB databa

2019-02-26 19:03发布

I have a few databases in MongoDB that I want to create models for dynamically, since there are many databases and I cannot do it manually. Questions:

  1. What should my models.py look like? (Does inspectdb work with mongodb databases or only SQL based dbs?)
  2. Since the database models are created dynamically, how do I code the serializer class to return the dynamic fields?

Thanks in advance.

1条回答
Emotional °昔
2楼-- · 2019-02-26 19:28

Django supports an object-relational mapper, that is aimed at traditional relational databases. While there are a number of mongodb packages for Django, none of them support inspectdb to construct your models. Either way, inspectdb is a kludge designed as a one of process to help a one-of migratation away from a legacy system, i.e. you'd build your models.py file once and never run inspectdb again. This is not what you want to do, as you seem to want dynamic models that can be added or altered at runtime.

On the bright side, Django MongoDB Engine has some support for arbitrary embedded models within pre-defined models. But even then they don't seem too supportive of it:

As you can see, generic embedded models add a lot of overhead that bloats up your data records. If you want to use them anyway, here’s how you’d do it...

In summary, try to build your models as best you can to actually match your requirements. If you know nothing about your models ahead of production, then perhaps Django isn't the right solution for you.

查看更多
登录 后发表回答