将现有数据库适配到Django应用

11 投票
2 回答
8059 浏览
提问于 2025-04-15 15:30

我有一个Postgresql数据库,里面有一些数据。我想用这个数据库创建一个Django应用。

我该如何把这些表导入到Django的模型和视图中呢?

2 个回答

3

如果你的数据库设计得不够简单或者不够好,那它可能和Django这个框架不太搭。

虽然可以通过逆向工程来适应,但你可能会发现原来的数据库设计有问题,这样你就得想很多笨办法来解决。

这个问题涉及到“遗留软件”,也就是那些还在用旧数据模型的软件。

我建议你可以这样做:

  1. 先用Django设计一个正确的数据模型。

  2. 把这个正确的模型映射到你现有的数据库上。

  3. 写一个转换脚本,使用简单直接的SQL和Django的ORM,把数据从不太适合Django的格式迁移到更好的模型。

    • 如果你有遗留软件,你需要制定一个合适的数据迁移计划。

    • 如果没有遗留软件,那你只需要运行这个转换一次。

19

有一个工具叫做 manage.py inspectdb,可以从你现有的数据库中生成模型。这个工具效果很好。

$ python manage.py inspectdb > models.py

撰写回答