2

我想第一次创建一个表(数据库版本= 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');
4

2 回答 2

3

显然 ActiveAndroid 在应用程序的初始设置中认为 DB 的版本为 0。所以,文件“1.sql”的版本比数据库号大,它会被跳过!

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

于 2014-12-01T05:20:36.037 回答
0

如果您已经使用配置即下面的代码和 Android Manifest "AA_DB_VERSION" 初始化了 ActiveAndroid;这就是原因。删除 Configuration.Builder。如果您使用配置进行初始化,ActiveAndroid 不会从 AA_DB_VERSION 获取版本号。

CoConfiguration.Builder(this).setDatabaseName("XXXX.db").create();
于 2016-05-28T16:14:08.700 回答