2010-09-14 77 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