2011-01-20 58 views
0

我试图将数据库推送到模拟器。我创建了我的桌面计算机上的脚本的数据库,它看起来相同。通过我的SQLiteOpenHelper的子类中创建的数据库:为什么SQLiteOpenHelper重新创建我现有的数据库?

CREATE TABLE android_metadata (locale TEXT); 
insert into android_metadata values('en_US'); 

CREATE TABLE notes (_id integer primary key autoincrement, 
        key text, 
        content text not null, 
        modifydate text, 
        createdate text, 
        syncnum integer, 
        version integer, 
        minversion integer, 
        sharekey text, 
        publishkey text, 
        deleted integer not null default 0, 
        pinned integer not null default 0, 
        unread integer not null default 0); 
CREATE TABLE tags (_id integer primary key autoincrement, 
        name text not null, 
        pos integer not null, 
        noteid integer not null, 
        foreign key(noteid) references notes (_id)); 

但由于某些原因,应用程序试图重新即使它已经存在的数据库。它尝试创建数据库中已存在的表时失败。也许这里有人知道为什么?

+0

摆脱`android_metadata`线,看看有没有什么帮助。那不是你的桌子,所以你应该放弃它。 – CommonsWare 2011-01-20 13:43:07

回答

0

好的。事实证明,我需要将数据库上的版本设置为与我的代码期望的版本相同。这是我的SQLite脚本来完成,像这样:

PRAGMA user_version = 1; 
相关问题