2010-09-14 75 views
0

我Django的探索与MySQL &有,我想讨论一些事情 -如何Django模型

  1. 我如何添加一个索引(在某些领域)?我可以通过Django模型层来完成吗?
  2. 如果我想将一些旧数据迁移到这些新的数据库表/模型中,我是否必须自己编写一些脚本,或者Django是否为模式映射工具提供了架构?
  3. 如果我需要更改现有的Django模型的模式,那么最简单的方法是什么?我知道这取决于我的模式,但它是如创建一个新列&运行python manage.py syncdb一样简单?
  4. 最后如何分析我从Django模型运行的所有查询的MySQL数据库?我正在寻找类似DEBUG=True and TEMPLATE_DEBUG=True类似的解决方案,我将在浏览器上获得查询性能(运行时等)。

在此先感谢...

+1

请立即提出一个问题! – 2010-09-14 11:15:28

+0

@Torok然后会有太多的问题和没有任何一个参考点...这样我(和其他人)可以回到这个页面。 – 2010-09-14 11:18:50

+0

1-3 rtfm,4:django调试工具栏 – 2010-09-14 11:21:15

回答

9

如何,我可以添加一个索引(在某些领域)?我可以通过Django模型层来完成吗?

你可以。看看Field.db_index选项。

如果我想将一些旧数据迁移到这些新的数据库表/模型中,我必须自己写一些脚本还是Django提供模式到模式映射工具?

Django没有内置工具来执行数据迁移。要迁移现有数据,您必须编写一个自定义脚本。这可能可能使用外部迁移工具(如南,见下文),但我没有尝试过。

最后如果我需要更改现有Django模型的模式,那么最简单的方法是什么?我知道这取决于我的模式,但它是如创建一个新的列一样简单&运行python manage.py syncdb?

使用迁移工具。 South是那里流行和有效的之一。还有其他人。使用工具会让你的生活变得更容易,原因很多。对于例如syncdb不会添加新列,只有新表。

如何分析我从Django模型运行的所有查询的MySQL数据库?我正在寻找像DEBUG = True和TEMPLATE_DEBUG = True类的解决方案,我将在浏览器上获得查询性能(运行时等)。

完成此操作的方法之一是使用此经典Django snippet。如果设置了DEBUG,则可以使用片段将关于触发查询的统计信息附加到页面底部。

更新

另一种方式来显示调试信息是使用django-debug-toolbar。谢谢@diegueus9

+0

很酷的东西!谢谢... – 2010-09-14 11:20:42

+3

我推荐http://github.com/robhudson/django-debug-toolbar进行配置文件sql查询。 – diegueus9 2010-09-14 13:08:05

+0

@感谢manoj及其他人。答案是很大的帮助。标出唯一正确的答案:) – 2010-09-16 21:00:37