Database enforces foreign key constraints incl. cascading deletes. (#480)

* Database enforces foreign key constraints incl. cascading deletes.
Fixes #317.
This commit is contained in:
Dennis Guse
2020-10-30 21:26:13 +01:00
committed by GitHub
parent 2b280f050c
commit 48c3695b5d
10 changed files with 164 additions and 129 deletions
@@ -39,6 +39,8 @@ import de.dennisguse.opentracks.content.data.TracksColumns;
/**
* A {@link ContentProvider} that handles access to track points, tracks, and markers tables.
* <p>
* Data consistency is enforced using Foreign Key Constraints within the database incl. cascading deletes.
*
* @author Leif Hendrik Wilden
*/
@@ -82,6 +84,8 @@ public class CustomContentProvider extends ContentProvider {
CustomSQLiteOpenHelper databaseHelper = new CustomSQLiteOpenHelper(context);
try {
db = databaseHelper.getWritableDatabase();
// Necessary to enable cascade deletion from Track to TrackPoints and Markers
db.setForeignKeyConstraintsEnabled(true);
} catch (SQLiteException e) {
Log.e(TAG, "Unable to open database for writing.", e);
}