最近想把寫了一部分的博客部署到SAE上去,原本覺得幾分鐘的事情,結果坑了半天。 python
首先是數據庫導入問題,從原本導出的數據庫不知怎麼就是導入不進SAE上數據庫裏,只能一個個表導入,真麻煩。 linux
好不容易都導完了,進個主頁看看吧,報錯Blog_blogpost這個表不存在。問題是這表必須存在,我一個個手動導的,除了有點不同,數據庫裏的是blog_blogpost,多是大小寫敏感的問題。可是在本地時,卻沒有這樣的問題,在syncdb的時候生成的表確實是以大寫開頭的,而本地數據庫裏的表則是小寫開頭,但在運行頁面卻毫無問題。 數據庫
Google下發現聽說MySQL在winodws下不區分表名大小寫,但在linux下是區分的。 app
那怎麼辦呢,Django Documentation 有提到這方面的東西。 post
就是在生成數據表的時候,Django默認會結合你的app的名字以及model名來做爲數據表名,而個人app名是Blog, 因而就出現了Blog_blogpost這個表名,可是改動app名顯然比較麻煩。 spa
其實只要在class Meta裏設定db_table,就能夠自定義表名,這樣就無需去改動app的名字了。 code
好比像這個tag。 blog
class Tag(models.Model): name = models.CharField(max_length=20) class Meta: ordering = ['name'] db_table = 'tag' def __unicode__(self): return self.name