2012-05-10 7 views
1

djangoモデルでは、私はInvitationという名前のクラスを持っていました。Djangoモデルsyncdb既存テーブルの作成

manage.py syncdbテーブルInvitationが実行されました。 これは私の最初のテーブルです。

しかし、私はImageという名前の別のクラスを作成し、manage.py syncdb

を実行すると、エラーが返されます。

Table UserInvitation already exists

Imageテーブルを作成するには、syncdbコマンドを使用してください。

モデル

class UserInvitation(models.Model): 

    InvitationID = models.AutoField(primary_key=True) 
    InvitationCode = models.CharField(max_length=255) 
    Email = models.CharField(max_length=150) 
    ExpireDate = models.DateTimeField() 
    Deleted = models.BooleanField(default=False) 
    CreatedDate = models.DateTimeField(auto_now=True) 

class Meta: 
    db_table = u'UserInvitation' 

class UserImage(models.Model): 
    ImageID = models.AutoField(primary_key=True) 
    UserID = models.IntegerField(unique=True) 
    FileName = models.CharField(max_length=255) 

class Meta: 
    db_table = u'UserImage' 
+1

ことができます。

また、メタクラスでのDB_Tableフィールドは、テーブル名として、作成したときに、(確認するために、あなたのDBを確認してください)小文字で

を参照してください南のドキュメントは、小文字でなければなりませんあなたのモデルを表示しますか? – DrTyrsa

+0

おそらく、モデルに間違いがあります。 DrTyrsaが書いたように、ここにモデルを貼り付けてください – szaman

+0

モデルが貼り付けられています – TomJoy

答えて

0

あなたは、データベースの変更を反映するためを使用する必要があります。

syncdbは、追加したテーブルだけでなく、DB内のすべてのテーブルを作成するコマンドを実行します。南で

、次のコマンドを実行し、バックそれだけUserInvitationクラスを持っていたときに、あなたのモデルを元に戻す必要があります。

python manage.py convert_to_south <name of app> 

はUserImageクラスをバック追加し、コマンドを実行します。

python manage.py schemamigration --auto <name of app> 
python manage.py migrate <name of app> 

これにより、データベースにuserimageテーブルが追加されます。 http://south.readthedocs.org/en/latest/

関連する問題