sqlite:數據庫文件,存儲數據
sqlite-shm,sqlite-wal是iOS7以後系統會默認開啓一個新的「數據庫日誌記錄模式」(database journaling mode)生成的。在調試的時候,咱們須要即時的觀察數據庫的變化,咱們就能夠先禁用這個日誌記錄模式,只須要在創建持久化存儲區的時候存入一個options參數便可。sql
NSDictionary *options = @{NSSQLitePragmasOption: @{@"journal_mode": @"DELETE"}};
sqlite-shm:共享內存(Shared Memory)文件,該文件裏面會包含一份sqlite-wal文件的索引,系統會自動生成shm文件,刪除它,下次運行還會自動生成
sqlite-wal:預寫式日誌(Write-Ahead Log)文件,這個文件裏面會包含還沒有提交的數據庫事務,因此看見有這個文件了,就表明數據庫裏面還有沒處理完的事務須要提交,因此說若是有sqlite-wal文件,再去打開sqlite文件,極可能最近一次數據庫操做尚未執行數據庫
只須要在創建持久化存儲區的時候存入一個options參數便可。app
NSDictionary *options = @{NSSQLitePragmasOption: @{@"journal_mode": @"DELETE"}, NSMigratePersistentStoresAutomaticallyOption :@YES, NSInferMappingModelAutomaticallyOption:@YES };
輕量級的遷移:
實體:能夠新增實體,能夠刪除實體,實體名字修改(需將重命名後實體的Renaming ID,設置爲以前的實體名)。
實體字段:修改實體的字段(不然舊字段對應的數據會被清除,其它的字段數據不受影響,)。調試