2013-01-06

iOS 5のnotes.sqliteの変更点

iOSのメモアプリ(MobileNotes.app)の内部DBのスキーマが3.0のの頃に比べて大幅に拡張されています(4.0から同期機能ができたので2段階拡張されているのかもしれません)。
3.0の時(2009年8月)に調べた記事はこちらです。
複雑になりすぎていて、もう直接使うことは無いと思いますが、備忘録として記載しておきたいと思います。
$ sw_vers
ProductName:    iPhone OS
ProductVersion: 5.1.1
BuildVersion:   9B206
$
$ sqlite3 Library/Notes/notes.sqlite
SQLite version 3.7.7
Enter ".help" for instructions
sqlite> .tables
ZACCOUNT      
ZNEXTID       
ZNOTE         
ZNOTEBODY     
ZNOTECHANGE   
ZPROPERTY     
ZSTORE        
Z_METADATA
Z_PRIMARYKEY
sqlite> .schema
CREATE TABLE ZACCOUNT ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZTYPE INTEGER, ZDEFAULTSTORE INTEGER, ZACCOUNTIDENTIFIER VARCHAR, ZCONSTRAINTSPATH VARCHAR, ZNAME VARCHAR );
CREATE TABLE ZNEXTID ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZCOUNTER INTEGER );
CREATE TABLE ZNOTE ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZCONTAINSCJK INTEGER, ZCONTENTTYPE INTEGER, ZDELETEDFLAG INTEGER, ZEXTERNALFLAGS INTEGER, ZEXTERNALSERVERINTID INTEGER, ZINTEGERID INTEGER, ZISBOOKKEEPINGENTRY INTEGER, ZBODY INTEGER, ZSTORE INTEGER, ZCREATIONDATE TIMESTAMP, ZMODIFICATIONDATE TIMESTAMP, ZAUTHOR VARCHAR, ZGUID VARCHAR, ZSERVERID VARCHAR, ZSUMMARY VARCHAR, ZTITLE VARCHAR );
CREATE TABLE ZNOTEBODY ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZOWNER INTEGER, ZCONTENT VARCHAR, ZEXTERNALCONTENTREF VARCHAR, ZEXTERNALREPRESENTATION BLOB );
CREATE TABLE ZNOTECHANGE ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZCHANGETYPE INTEGER, ZSTORE INTEGER, ZNOTEINTEGERIDS BLOB, ZNOTESERVERIDS BLOB, ZNOTESERVERINTIDS BLOB );
CREATE TABLE ZPROPERTY ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZPROPERTYKEY VARCHAR, ZPROPERTYVALUE BLOB );
CREATE TABLE ZSTORE ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZACCOUNT INTEGER, ZEXTERNALIDENTIFIER VARCHAR, ZNAME VARCHAR, ZSYNCANCHOR VARCHAR );
CREATE TABLE Z_METADATA (Z_VERSION INTEGER PRIMARY KEY, Z_UUID VARCHAR(255), Z_PLIST BLOB);
CREATE TABLE Z_PRIMARYKEY (Z_ENT INTEGER PRIMARY KEY, Z_NAME VARCHAR, Z_SUPER INTEGER, Z_MAX INTEGER);
CREATE INDEX ZACCOUNT_ZDEFAULTSTORE_INDEX ON ZACCOUNT (ZDEFAULTSTORE);
CREATE INDEX ZNOTEBODY_ZOWNER_INDEX ON ZNOTEBODY (ZOWNER);
CREATE INDEX ZNOTECHANGE_ZSTORE_INDEX ON ZNOTECHANGE (ZSTORE);
CREATE INDEX ZNOTE_ZBODY_INDEX ON ZNOTE (ZBODY);
CREATE INDEX ZNOTE_ZINTEGERID_INDEX ON ZNOTE (ZINTEGERID);
CREATE INDEX ZNOTE_ZSTORE_INDEX ON ZNOTE (ZSTORE);
CREATE INDEX ZSTORE_ZACCOUNT_INDEX ON ZSTORE (ZACCOUNT);
sqlite> .q
$
The iPhone Wikiというサイトにも部分的にですが解説が書かれています。

No comments:

Post a Comment