2015-06-23 68 views
-1

我正在使用django 1.8。我怎樣才能鉤入Django的django遷移1.8

現在我需要添加一些自定義字段基於permisions,所以我創造了從蟒蛇車型YML文件中像這樣

description: 
    permissions: ['ADMIN'] 
award: 
    permissions: ['USER'] 

其工作正常,但如果一些chnages字段名或reomves我的問題有些領域則我也需要在我的yml文件中反映這一點。

因此,當用戶運行遷移,然後我就在想,如果一些我怎麼可能能夠看到

  1. 如果字段被刪除的話,我需要刪除YML文件條目
  2. 如果字段renmaed然後我需要重新命名它
  3. 如果添加了新的領域,然後我需要添加空白行吧

我如何能做到這一點

回答

1

遷移時創建的,您可以手動基地遷移類更改爲您的自定義子類與重寫apply方法

from django.db import migrations 

class MyBaseMigration(migrations.Migration): 
    def apply(self, project_state, schema_editor, collect_sql=False): 
     for operation in self.operations: 
      """ 
      Examine operation classes here and provide end-user notes 
      """ 
     return super(MyBaseMigration, self).apply(project_state, schema_editor, collect_sql=collect_sql) 
+0

我沒有得到它如何使用。我想要自動的東西。你說的是手動修改遷移文件。如果我必須手動執行,那麼最好直接使用chnage。 – user3214546

+0

是否可以使用https://docs.djangoproject.com/en/1.8/ref/signals/#post- migrate – user3214546

+0

遷移後沒有關於遷移操作的信息。在自動通知的情況下,你爲什麼要詢問關於遷移運行的通知?遷移文件創建時可能需要通知嗎? – kmmbvnr