【发布时间】:2020-05-08 13:45:37
【问题描述】:
我正在使用 Django 构建一个网站,我需要在我的 User 模型中具有 GPS 坐标属性。
我将使用 GeoDjango,它需要 PostgreSQL,并且由于我的网站已经在使用 sqlite3 默认数据库,我需要在项目中安装一个 PostgreSQL 数据库,以便在其中创建一个 Coordinates 模型并链接它到 SQLite 数据库的User 模型。
我在网上找到了很多关于“如何使用多个数据库”的教程,但它们都是非常基础的。由于我对 Django 和 Web 编程还很陌生,因此我需要有关多个数据库的深入教程。我有几个问题,如果您能回答其中的一个或多个问题,我提前感谢您!
注意:我使用的是安装了 PostgreSQL 的 windows 10 和 windows 的 ubuntu 应用程序。
1) 如何在 Django 项目中为新数据库创建和初始化文件?文件 db.sqlite3 是在 Django 项目初始化时自动创建的,那么如何创建另一个文件呢?
2) 我需要使用新的应用程序来获取 GPS 坐标还是可以使用现有的应用程序?
3) 如何在我的User 模型和将在另一个数据库中的Coordinates 模型之间建立OneToOne 关系?
【问题讨论】:
-
我会回答第三个:Django 不支持cross DB relations。
-
@NalinDobhal 那么你对如何达到我的目的有什么建议吗?我希望除了删除所有内容并仅使用 postgreSQL 数据库重建项目之外,还有其他解决方案
-
您不必删除任何内容。只需将现有数据迁移到 PostgreSQL。它通常是这样做的,您可以找到很多关于如何做到这一点的信息。现在的一个小不便将使您免于使用多个数据库引擎带来的所有限制和复杂性。
-
@KevinChristopherHenry 谢谢,我想我会这样做的!
-
@JulienMertz sqlite 无论如何都不适合生产。
标签: python django postgresql sqlite geodjango