ActiveAndroid使用模式迁移预填充表

时间:2014-11-26 15:32:02

标签: android android-sqlite activeandroid

我想第一次创建一个表(DB version = 1),默认情况下插入2行。 该表需要由ActiveAndroid自动创建,并且记录应该由我在1.sql文件中编写的SQL插入。

该表看起来很好,但根本没有插入行(没有抛出错误)。

该模型如下所示:

@Table(name = "leagues")
public class League extends Model implements Serializable{

    @Column(name = "name")
    public String name;

    public static List<League> getAll() {
        return new Select()
                .from(League.class)
                .orderBy("name ASC")
                .execute();
    }
}

和1.sql:

INSERT INTO leagues (Id, name) VALUES (1, 'Premier league');

2 个答案:

答案 0 :(得分:3)

显然,ActiveAndroid认为在应用程序的初始设置中,DB的版本为0。 因此,文件“1.sql”的版本比DB编号更大,它将被跳过!

要使其正常工作,脚本名称应为“0.sql”。

答案 1 :(得分:0)

如果您已使用Configuration(即下面的代码和Android Manifest&#34; AA_DB_VERSION&#34;)初始化了ActiveAndroid。这就是原因。删除Configuration.Builder。如果使用配置进行初始化,则ActiveAndroid无法从AA_DB_VERSION获取版本号。

CoConfiguration.Builder(this).setDatabaseName("XXXX.db").create();