mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-01-17 22:38:33 +01:00
Prefer QSQLITE3 over QSQLITE, but fallback.
This commit is contained in:
parent
03106296d4
commit
bb1e856955
@ -733,15 +733,24 @@ Tomahawk::DatabaseImpl::openDatabase( const QString& dbname, bool checkSchema )
|
|||||||
connName += "_" + uuid();
|
connName += "_" + uuid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static QString sqlDriver;
|
||||||
bool schemaUpdated = false;
|
bool schemaUpdated = false;
|
||||||
int version = -1;
|
int version = -1;
|
||||||
{
|
{
|
||||||
QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE", connName );
|
if ( sqlDriver.isEmpty() )
|
||||||
|
{
|
||||||
|
sqlDriver = QString( "QSQLITE3" );
|
||||||
|
QSqlDatabase testdb = QSqlDatabase::addDatabase( sqlDriver, "testDriverConnection" );
|
||||||
|
if ( !testdb.isValid() )
|
||||||
|
sqlDriver = QString( "QSQLITE" );
|
||||||
|
}
|
||||||
|
|
||||||
|
QSqlDatabase db = QSqlDatabase::addDatabase( sqlDriver, connName );
|
||||||
db.setDatabaseName( dbname );
|
db.setDatabaseName( dbname );
|
||||||
db.setConnectOptions( "QSQLITE_ENABLE_SHARED_CACHE=1" );
|
db.setConnectOptions( "QSQLITE_ENABLE_SHARED_CACHE=1" );
|
||||||
if ( !db.open() )
|
if ( !db.open() )
|
||||||
{
|
{
|
||||||
tLog() << "Failed to open database" << dbname;
|
tLog() << "Failed to open database" << dbname << "with driver" << sqlDriver;
|
||||||
throw "failed to open db"; // TODO
|
throw "failed to open db"; // TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -752,7 +761,7 @@ Tomahawk::DatabaseImpl::openDatabase( const QString& dbname, bool checkSchema )
|
|||||||
if ( qry.next() )
|
if ( qry.next() )
|
||||||
{
|
{
|
||||||
version = qry.value( 0 ).toInt();
|
version = qry.value( 0 ).toInt();
|
||||||
tLog() << "Database schema of" << dbname << "is" << version;
|
tLog() << "Database schema of" << dbname << sqlDriver << "is" << version;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -775,7 +784,7 @@ Tomahawk::DatabaseImpl::openDatabase( const QString& dbname, bool checkSchema )
|
|||||||
|
|
||||||
QFile::copy( dbname, newname );
|
QFile::copy( dbname, newname );
|
||||||
{
|
{
|
||||||
m_db = QSqlDatabase::addDatabase( "QSQLITE", connName );
|
m_db = QSqlDatabase::addDatabase( sqlDriver, connName );
|
||||||
m_db.setDatabaseName( dbname );
|
m_db.setDatabaseName( dbname );
|
||||||
if ( !m_db.open() )
|
if ( !m_db.open() )
|
||||||
throw "db moving failed";
|
throw "db moving failed";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user