sql >> Database >  >> RDS >> SQLite

SQLiteReadOnlyDatabaseException:poging om een ​​alleen-lezen database te schrijven (code 1032)

Ik zit met min of meer exact hetzelfde probleem en ik heb een openstaand defect gevonden dat logisch is...

https://code.google.com/p/android/issues/detail?id=174566

Mijn tijdelijke oplossing - hoewel niet de beste oplossing - is om nooit de databaserevisie uit te voeren en dit zelf bij te houden, en dus nooit onUpgrade() aan te roepen en voer handmatig een upgrade uit bij het updaten van de app.

Als alternatief, als u een kleine DB heeft die alleen-lezen is, kunt u de kopie van de db in activa activeren op elke onCreate() in DBHelper class, maar dit kan ongewenste problemen opleveren als het bestandssysteem vol is, dus doe dit alleen terwijl u op zoek bent naar een betere oplossing.

@Override
public void onCreate(SQLiteDatabase db) {
    // Workaround for Issue 174566
    myContext.deleteDatabase(DB_NAME);
    try {
        copyDataBase();
    }
    catch(IOException e) {
        System.out.println("IOException " + e.getLocalizedMessage());
    }
}

Mijn app wordt nu geüpgraded zoals het hoort met mijn tijdelijke oplossing en door te beoordelen hoe lang het geleden is dat dit defect oorspronkelijk werd gemeld, wordt het misschien helemaal niet verholpen...

Het spijt me dat dit geen volledige oplossing voor het probleem is, maar het is in ieder geval een stap vooruit.



  1. Wat is het verschil tussen utf8mb4- en utf8-tekensets in MySQL?

  2. Kolom toevoegen of verwijderen met behulp van GUI in SQL Server - SQL Server / T-SQL-zelfstudie, deel 39

  3. PLSQL-codeprestaties afstemmen of testen in Oracle D2k-formulieren

  4. Hoe de prestaties van MySQL te benchmarken met SysBench