我正在启动一个项目,决定使用Django。
我的问题涉及数据库创建。我已经阅读了教程和一些书籍,总是先创建模型,然后同步数据库。我必须说,这对我来说有点奇怪。我总是从数据库开始,定义架构,然后创建我的数据库抽象(模型、实体等)。
我检查了一些外部可插拔的应用程序,它们也使用了“模型优先”的做法。
我可以看到“模型优先”方法的一些优势,如可移植性、重新部署等。
但我也看到一些缺点:如何创建索引、索引类型、触发器、视图、存储过程等。
那么,你在现实生活中如何开始一个项目呢?
我正在启动一个项目,决定使用Django。
我的问题涉及数据库创建。我已经阅读了教程和一些书籍,总是先创建模型,然后同步数据库。我必须说,这对我来说有点奇怪。我总是从数据库开始,定义架构,然后创建我的数据库抽象(模型、实体等)。
我检查了一些外部可插拔的应用程序,它们也使用了“模型优先”的做法。
我可以看到“模型优先”方法的一些优势,如可移植性、重新部署等。
但我也看到一些缺点:如何创建索引、索引类型、触发器、视图、存储过程等。
那么,你在现实生活中如何开始一个项目呢?
触发器、视图和存储过程并不是Django世界的一部分。虽然可以使用它们,但这是痛苦和不必要的。Django的开发人员认为业务逻辑应该放在Python中,而不是数据库中。
至于索引,您可以在模型中创建它们(例如使用db_index
和unique_together
之类的东西),或者您可以稍后通过数据库迁移(例如使用South)添加它们。
db_index=True
指定
- 唯一约束条件: unique=True
或 unique_togther=(('field1', field2'),)
用于组合唯一约束条件。python manage.py syncdb
Django会自动创建所需的表、索引、触发器等来支持您创建的模型。如果您不想让Django为您创建数据库,您可以使用:
python manage.py sqlall
sql
命令可供使用: