Django博客開發筆記摘要之MySQL表名大小寫問題

最近想把寫了一部分的博客部署到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
相關文章
相關標籤/搜索