From 8fbb45037ce18bad8c9050afb381e328634b9267 Mon Sep 17 00:00:00 2001 From: Maxime Dor Date: Thu, 14 Sep 2017 03:38:14 +0200 Subject: [PATCH] Create SQLite DB file parent directory if necessary --- .../kamax/mxisd/storage/ormlite/OrmLiteSqliteStorage.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/groovy/io/kamax/mxisd/storage/ormlite/OrmLiteSqliteStorage.java b/src/main/groovy/io/kamax/mxisd/storage/ormlite/OrmLiteSqliteStorage.java index 1a37579..e76596a 100644 --- a/src/main/groovy/io/kamax/mxisd/storage/ormlite/OrmLiteSqliteStorage.java +++ b/src/main/groovy/io/kamax/mxisd/storage/ormlite/OrmLiteSqliteStorage.java @@ -29,6 +29,7 @@ import com.j256.ormlite.table.TableUtils; import io.kamax.mxisd.invitation.IThreePidInviteReply; import io.kamax.mxisd.storage.IStorage; +import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; @@ -41,6 +42,11 @@ public class OrmLiteSqliteStorage implements IStorage { OrmLiteSqliteStorage(String path) { try { + File parent = new File(path).getParentFile(); + if (!parent.mkdirs() && !parent.isDirectory()) { + throw new RuntimeException("Unable to create DB parent directory: " + parent); + } + ConnectionSource connPool = new JdbcConnectionSource("jdbc:sqlite:" + path); invDao = DaoManager.createDao(connPool, ThreePidInviteIO.class); TableUtils.createTableIfNotExists(connPool, ThreePidInviteIO.class);