我正在开发一个应用程序,希望发布到市场,我将用Python编写这个应用程序。我不想将任何特定的数据库SQL / NOSQL锁定到我的应用程序中。那么如何设计应用程序或模型层以不强制执行SQL / NOSQL来存储数据呢?
有没有一种ORM可以同时使用两种类型的存储方法?我没有找到。通常我会使用SQLAlchemy来确保用户可以选择MySQL / PostgreSQL / MSSQL等等,但是将NOSQL加入其中似乎比我最初想象的要复杂。
我的一些要求如下:
- 我不想强制使用任何存储后端,这是为了确保不会吓到用户使用该应用程序。
- 它必须支持数据架构迁移(在安装或升级过程中)
如果您有任何想法,可以帮助我设计满足这些要求的结构吗?是否可能创建这样的结构:
+-----+
+ app +
+-----+
|
+-------------+
+ Data Access +
+-------------+
|
+-----------+
+ SQL/NOSQL +
+-----------+
感谢