Create SQLite DB file parent directory if necessary

This commit is contained in:
Maxime Dor
2017-09-14 03:38:14 +02:00
parent f1196d5b72
commit 8fbb45037c

View File

@@ -29,6 +29,7 @@ import com.j256.ormlite.table.TableUtils;
import io.kamax.mxisd.invitation.IThreePidInviteReply; import io.kamax.mxisd.invitation.IThreePidInviteReply;
import io.kamax.mxisd.storage.IStorage; import io.kamax.mxisd.storage.IStorage;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
@@ -41,6 +42,11 @@ public class OrmLiteSqliteStorage implements IStorage {
OrmLiteSqliteStorage(String path) { OrmLiteSqliteStorage(String path) {
try { 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); ConnectionSource connPool = new JdbcConnectionSource("jdbc:sqlite:" + path);
invDao = DaoManager.createDao(connPool, ThreePidInviteIO.class); invDao = DaoManager.createDao(connPool, ThreePidInviteIO.class);
TableUtils.createTableIfNotExists(connPool, ThreePidInviteIO.class); TableUtils.createTableIfNotExists(connPool, ThreePidInviteIO.class);