将现有数据库适配到Django应用
我有一个Postgresql数据库,里面有一些数据。我想用这个数据库创建一个Django应用。
我该如何把这些表导入到Django的模型和视图中呢?
2 个回答
3
如果你的数据库设计得不够简单或者不够好,那它可能和Django这个框架不太搭。
虽然可以通过逆向工程来适应,但你可能会发现原来的数据库设计有问题,这样你就得想很多笨办法来解决。
这个问题涉及到“遗留软件”,也就是那些还在用旧数据模型的软件。
我建议你可以这样做:
先用Django设计一个正确的数据模型。
把这个正确的模型映射到你现有的数据库上。
写一个转换脚本,使用简单直接的SQL和Django的ORM,把数据从不太适合Django的格式迁移到更好的模型。
如果你有遗留软件,你需要制定一个合适的数据迁移计划。
如果没有遗留软件,那你只需要运行这个转换一次。
19
有一个工具叫做 manage.py inspectdb
,可以从你现有的数据库中生成模型。这个工具效果很好。
$ python manage.py inspectdb > models.py