Changeset View
Changeset View
Standalone View
Standalone View
src/databaseinterface.cpp
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 1139 Lines • ▼ Show 20 Line(s) | 1137 | if (!result) { | |||
---|---|---|---|---|---|
1140 | 1140 | | |||
1141 | Q_EMIT databaseError(); | 1141 | Q_EMIT databaseError(); | ||
1142 | } | 1142 | } | ||
1143 | } | 1143 | } | ||
1144 | 1144 | | |||
1145 | listTables = d->mTracksDatabase.tables(); | 1145 | listTables = d->mTracksDatabase.tables(); | ||
1146 | } | 1146 | } | ||
1147 | 1147 | | |||
1148 | checkDatabaseSchema(); | | |||
1149 | listTables = d->mTracksDatabase.tables(); | 1148 | listTables = d->mTracksDatabase.tables(); | ||
1150 | 1149 | | |||
1151 | if (listTables.contains(QStringLiteral("DatabaseVersionV5")) && | 1150 | if (listTables.contains(QStringLiteral("DatabaseVersionV5")) && | ||
1152 | !listTables.contains(QStringLiteral("DatabaseVersionV9"))) { | 1151 | !listTables.contains(QStringLiteral("DatabaseVersionV9"))) { | ||
1153 | upgradeDatabaseV9(); | 1152 | upgradeDatabaseV9(); | ||
1154 | upgradeDatabaseV11(); | 1153 | upgradeDatabaseV11(); | ||
1155 | upgradeDatabaseV12(); | 1154 | upgradeDatabaseV12(); | ||
1155 | | ||||
1156 | checkDatabaseSchema(); | ||||
1156 | } else if (listTables.contains(QStringLiteral("DatabaseVersionV9"))) { | 1157 | } else if (listTables.contains(QStringLiteral("DatabaseVersionV9"))) { | ||
1157 | if (!listTables.contains(QStringLiteral("DatabaseVersionV11"))) { | 1158 | if (!listTables.contains(QStringLiteral("DatabaseVersionV11"))) { | ||
1158 | upgradeDatabaseV11(); | 1159 | upgradeDatabaseV11(); | ||
1159 | } | 1160 | } | ||
1160 | if (!listTables.contains(QStringLiteral("DatabaseVersionV12"))) { | 1161 | if (!listTables.contains(QStringLiteral("DatabaseVersionV12"))) { | ||
1161 | upgradeDatabaseV12(); | 1162 | upgradeDatabaseV12(); | ||
1162 | } | 1163 | } | ||
1164 | | ||||
1165 | checkDatabaseSchema(); | ||||
1163 | } else { | 1166 | } else { | ||
1164 | createDatabaseV9(); | 1167 | createDatabaseV9(); | ||
1165 | upgradeDatabaseV11(); | 1168 | upgradeDatabaseV11(); | ||
1166 | upgradeDatabaseV12(); | 1169 | upgradeDatabaseV12(); | ||
1167 | } | 1170 | } | ||
1168 | } | 1171 | } | ||
1169 | 1172 | | |||
1170 | void DatabaseInterface::createDatabaseV9() | 1173 | void DatabaseInterface::createDatabaseV9() | ||
▲ Show 20 Lines • Show All 309 Lines • ▼ Show 20 Line(s) | 1482 | { | |||
1480 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | 1483 | QSqlQuery createSchemaQuery(d->mTracksDatabase); | ||
1481 | 1484 | | |||
1482 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `NewAlbums` (" | 1485 | const auto &result = createSchemaQuery.exec(QStringLiteral("CREATE TABLE `NewAlbums` (" | ||
1483 | "`ID` INTEGER PRIMARY KEY NOT NULL, " | 1486 | "`ID` INTEGER PRIMARY KEY NOT NULL, " | ||
1484 | "`Title` VARCHAR(55) NOT NULL, " | 1487 | "`Title` VARCHAR(55) NOT NULL, " | ||
1485 | "`ArtistName` VARCHAR(55), " | 1488 | "`ArtistName` VARCHAR(55), " | ||
1486 | "`AlbumPath` VARCHAR(255) NOT NULL, " | 1489 | "`AlbumPath` VARCHAR(255) NOT NULL, " | ||
1487 | "`CoverFileName` VARCHAR(255) NOT NULL, " | 1490 | "`CoverFileName` VARCHAR(255) NOT NULL, " | ||
1488 | "`AlbumInternalID` VARCHAR(55), " | | |||
1489 | "UNIQUE (`Title`, `ArtistName`, `AlbumPath`), " | 1491 | "UNIQUE (`Title`, `ArtistName`, `AlbumPath`), " | ||
1490 | "CONSTRAINT fk_artists FOREIGN KEY (`ArtistName`) REFERENCES `Artists`(`Name`) " | 1492 | "CONSTRAINT fk_artists FOREIGN KEY (`ArtistName`) REFERENCES `Artists`(`Name`) " | ||
1491 | "ON DELETE CASCADE)")); | 1493 | "ON DELETE CASCADE)")); | ||
1492 | 1494 | | |||
1493 | if (!result) { | 1495 | if (!result) { | ||
1494 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV9" << createSchemaQuery.lastQuery(); | 1496 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV9" << createSchemaQuery.lastQuery(); | ||
1495 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV9" << createSchemaQuery.lastError(); | 1497 | qCDebug(orgKdeElisaDatabase) << "DatabaseInterface::upgradeDatabaseV9" << createSchemaQuery.lastError(); | ||
1496 | } | 1498 | } | ||
1497 | } | 1499 | } | ||
1498 | 1500 | | |||
1499 | { | 1501 | { | ||
1500 | QSqlQuery copyDataQuery(d->mTracksDatabase); | 1502 | QSqlQuery copyDataQuery(d->mTracksDatabase); | ||
1501 | 1503 | | |||
1502 | auto result = copyDataQuery.exec(QStringLiteral("INSERT INTO `NewAlbums` " | 1504 | auto result = copyDataQuery.exec(QStringLiteral("INSERT INTO `NewAlbums` " | ||
1503 | "SELECT " | 1505 | "SELECT " | ||
1504 | "album.`ID`, " | 1506 | "album.`ID`, " | ||
1505 | "album.`Title`, " | 1507 | "album.`Title`, " | ||
1506 | "artist.`Name`, " | 1508 | "artist.`Name`, " | ||
1507 | "album.`AlbumPath`, " | 1509 | "album.`AlbumPath`, " | ||
1508 | "album.`CoverFileName`, " | 1510 | "album.`CoverFileName` " | ||
1509 | "album.`AlbumInternalID` " | | |||
1510 | "FROM " | 1511 | "FROM " | ||
1511 | "`Albums` album, " | 1512 | "`Albums` album, " | ||
1512 | "`AlbumsArtists` albumArtistMapping, " | 1513 | "`AlbumsArtists` albumArtistMapping, " | ||
1513 | "`Artists` artist " | 1514 | "`Artists` artist " | ||
1514 | "WHERE " | 1515 | "WHERE " | ||
1515 | "album.`ID` = albumArtistMapping.`AlbumID` AND " | 1516 | "album.`ID` = albumArtistMapping.`AlbumID` AND " | ||
1516 | "albumArtistMapping.`ArtistID` = artist.`ID`")); | 1517 | "albumArtistMapping.`ArtistID` = artist.`ID`")); | ||
1517 | 1518 | | |||
▲ Show 20 Lines • Show All 5042 Lines • Show Last 20 Lines |