Djangoブログ開発ノートの概要MySQL表名の大文字と小文字の問題

1000 ワード

最近は一部書いたブログをSAEに配置しようと思っていたのですが、数分のことかと思ったら、半日も穴があいてしまいました.
まずデータベースのインポートの問題ですが、本来エクスポートされたデータベースがなぜかSAE上のデータベースにインポートされず、テーブルごとにしかインポートできないのが面倒です.
やっと案内が終わったので、ホームページに入ってみましょう.ブログを間違えました.blogpostというテーブルは存在しません.問題はこのテーブルが存在しなければならないことです.私は手動で導いたのですが、少し違います.データベースにはblogが入っています.blogpostは、大文字と小文字に敏感な問題かもしれません.しかし、ローカルでは、syncdbのときに生成されるテーブルは確かに大文字で始まり、ローカルデータベースのテーブルは小文字で始まりますが、ページを実行しても問題ありません.
Googleの下でMySQLはwinodwsの下で表名の大文字と小文字を区別しないということを発見しましたが、linuxの下では区別しています.
どうすればいいのか、Django Documentationにはこの方面のことが言及されています.
データテーブルを生成するとき、Djangoのデフォルトはあなたのappの名前とmodel名を結合してデータテーブル名として、私のapp名はBlogで、そこでBlog_が現れましたblogpostという表名ですが、app名を変更するのは明らかに面倒です.
実はclass Metaでdbを設定すればtableは、テーブル名をカスタマイズすることができ、appの名前を変更する必要はありません.
例えばこのtag.
class Tag(models.Model):
	name = models.CharField(max_length=20)	
	
	class Meta: 
		ordering = ['name']	
		db_table = 'tag'
	
	def __unicode__(self):
		return self.name