2016-04-15 12 views
0

私はdjango 1.8でいくつかのマイグレーションの問題があり、毎回DBテーブルを手動で削除することで回避する必要があります。Djangoのマイグレーションが常に機能するとは限りません

私の問題は、以下の通りです - たびに私は新しいフィールドを追加し、それは何も変更が適用されないために言う

python manage.py makemigrations 

python manage.py migrate 

を実行して、私のテーブルを変更した後。最後のテーブルに

(それは私がモデルファイルの変更を拾っていない)

(フォルダが空の移行)は、古い構造になったままで、私がテストしたときに、それは私にエラーが発生します。

DBにテーブルを直接ドロップして再起動すると、毎回テストデータを再作成する必要があるので、面倒です。

移行のバグですか、私だけですか?

たとえば、これはモデルファイルのテーブルですが、以前は他のテーブルで発生していました。

@with_author 
class BOM(models.Model): 
    name = models.CharField(max_length=200,null=True, blank=True) 
    description = models.TextField(null=True, blank=True) 
    product= models.ForeignKey(Product, on_delete=models.PROTECT) 
    material = models.OneToOneField(Material, related_name = 'material') 
    creation_time = models.DateTimeField(auto_now_add=True) 
    materialuom = models.CharField(max_length=1, 
           choices=UOM_CHOICES) 
    quantity = models.DecimalField(max_digits=19, decimal_places=10) 
    waste = models.DecimalField(null=True, blank=True,max_digits=19, decimal_places=10) 
    def __unicode__(self): 
     return u'%s %s' % (self.id, self.name) 
+0

使用している 'with_author'デコレータに問題がありますか? – Alasdair

+2

あなたは 'python manage.py makemigrations appname'を試しましたか? – ahmed

+0

@ahmed私はアプリ名で試してみましたが、それをピックアップしましたが、テーブルを落としたときからすでにテーブルが存在していて、django migrate端末に何も書き込まずに再作成してから混乱が生じました。私の印象は、移行のバグです。 –

答えて

1

私は@ahmedからのコメントのおかげで仕事を得ました。 python manage.py makemigrations appnameを実行するたびに、appnameを入力することが必須です。appname機能が機能していない場合もあります。

しかし、私はまだdjango1.8の移行プロセスに問題があると信じています。

関連する問題