v0.101.0 redesign use of main and user database.
the old design have flaws and limitations. see :id001: and :id002: in operational file. new design: open :memory: db readwrite, this will be the m_db handler. try attach main db at known path (readonly if possible) to "maindb". if failed, try next known path, if all failed, initDB() should return false and gave up. try attach user db at known path to "userdb" schema, if failed, create :memory: db and initialize it as user db. attach it as "userdb" schema. update all query against main db to query from maindb.* table. update all SQL against user db to run again userdb.* table. benefits: - access to user db is concurrent safe. multiple libpyzy app won't overwrite user's user db file and lose data. - there is no need to saveUserDB() using timer in the bg. - there is no need to copy data from user db to :memory:, if user db is large, this can lower memory usage.
parent
95b8f0b6
Please register or sign in to comment