2017-07-11 67 views
0

我手動刪除了一個表,導致更改模型時我犯了一個非常糟糕的錯誤。無論如何...我如何重新創建它?我曾嘗試過:django重新創建刪除表

- Delete the migrate folder of that app 
- delete from django_migrations where app='main' 
- makemigrations main 
- migrate main 

但它停在第一張桌子上。這是有:-(我的表message在這種情況下,不重新創建。在0001_initial.py我有我的表

migrations.CreateModel(
     name='Message', 
     fields=[ 
      ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 
      ('created_at', models.DateTimeField(auto_now_add=True)), 
      ('updated_at', models.DateTimeField(auto_now=True)), 
      ('unread', models.BooleanField(default=True)), 
      ('subject', models.CharField(max_length=120)), 
      ('freetext', models.TextField(null=True)), 
      ('from_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='from_user', to=settings.AUTH_USER_MODEL)), 
      ('to_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='to_user', to=settings.AUTH_USER_MODEL)), 
     ], 
    ), 

正確的條目有沒有辦法手動啓動呢?

回答

0

下一次,當你回滾:

  1. 走進你的應用程序的遷移文件夾

  2. 查找遷移文件,你WOU我想回去。 (例如0012_post_category.py)

  3. 走在終端寫:./manage.py遷移yourAppName 0012(這只是一個例子號碼),然後回車

  4. 如一切順利。刪除您的遷移文件夾中此編號後面的其他遷移。

不只是刪除遷移!希望有所幫助。

+0

是的,這有助於。下一次我會這樣做:-)爲我的具體問題,我創建了一個文件'0002_message.py'只包含表'message'的創建。我現在有'0001_initial.py'和'0002_message.py'。我清除了'django_migrations'中除'0001_initial'之外的所有條目,並且運行'migrate main'並重新創建了歡呼表。至少我現在可以更好地理解這種遷移工作是如何工作的 – mbieren

+0

當然,我在'0001_initial.py'中刪除了'message'的條目。 – mbieren

+0

好的非常好。這就像我的標準方式,如果有數據庫的問題。在90%的情況下,您可以像這樣解決問題 – hansTheFranz