2017-09-06 44 views
0

我想了解DBFlow,因爲在我現在工作的項目中,前一個人決定使用它。所以在數據庫類中我有:Android - DBflow遷移腳本

@Database(name = ConstructDB.NAME, version = ConstructDB.VERSION) 
public class ConstructDB { 
    public static final String NAME = "construct_v3"; 
    public static final int VERSION = 18; 

    @Migration(version = 17, database = ConstructDB.class) 
    public static class Migration17 extends AlterTableMigration<Task> { 
    public Migration17(Class<Task> table) { 
     super(table); 
    } 

    @Override 
    public void onPreMigrate() { 
     super.onPreMigrate(); 
     addColumn(SQLiteType.INTEGER, NAMES.DB.READ_COUNT); 
    } 
    } 
} 

這是以前的遷移腳本。所以現在我想添加一個新的列到同一個表。我在表類中做了必要的更改(例如添加列,set和get方法等)。我想編寫一個新腳本來接受我的更改。所以我這樣做:

@Database(name = ConstructDB.NAME, version = ConstructDB.VERSION) 
public class ConstructDB { 
    public static final String NAME = "construct_v3"; 
    public static final int VERSION = 19; 

    @Migration(version = 18, database = ConstructDB.class) 
    public static class Migration18 extends AlterTableMigration<Task> { 
    public Migration18(Class<Task> table) { 
     super(table); 
    } 

    @Override 
    public void onPreMigrate() { 
     super.onPreMigrate(); 
     addColumn(SQLiteType.TEXT, NAMES.DB.CATEGORY_ID); 
    } 
    } 
} 

但是當我運行該項目,我有很多的錯誤,如:

error: cannot find symbol 
import com.construct.v2.dagger.DaggerConstructComponent; 

而且大多是象這樣的錯誤(something_table,這是在我的數據庫中的所有表此。 γ_表文件是build文件夾下,他們不會被編輯):

error: cannot find symbol 
import com.construct.v2.models.Attachment_Table; 

如果我回到我我的變化前的狀態(在任務模式和遷移腳本)的代碼運行就好了。所以我認爲我做錯了什麼或者跳過了一些步驟。我如何運行遷移腳本?我還需要做什麼其他更改?

回答