Другая альтернатива для удаления песни duplicqtes из базы данных banshee sqlite:
cd /home/youruser/.config/banshee-1/
Закрыть Banshee ПЕРВЫЙ! Резервное копирование вашей базы данных:
cp banshee.db banshee.db.bck
Если у вас нет установленного sqlite:
sudo apt-get install sqlite3
Открыть DB:
sqlite3 banshee.db
Тип этот запрос:
DELETE FROM coretracks WHERE TrackID NOT IN (SELECT MIN (TrackID) FROM coretracks GROUP BY TitleLowered, ArtistID, AlbumID, Title);
exit:
.q
Вы закончили, откройте Banshee и проверьте результат.
В этом ответе используется python для доступа к базе данных banshee, а затем выполните действие sql, которое списки donbicca перечисляют с помощью твиста. Вместо того, чтобы многократно запускать код sql, я попросил python закодировать код sql по количеству экземпляров, которые существуют в SQL-коде. Вам нужно всего лишь запустить этот код один раз. Вы должны заменить свой домашний путь (замените «home / JONDOE» на ваш домашний путь).
#! / Usr / bin / env python import sqlite3 # открыть базу данных для определения количества строк to loop over db = sqlite3.connect ('/ home / me / .config / banshee-1 / banshee.db') cursor = db.cursor () a = cursor.execute ('SELECT TrackID из группы корреляторов по TitleLowered, ArtistID , AlbumID, Title ') a_trackid = a.fetchall () db.close () # Закрывать базу данных, чтобы гарантировать, что результаты не влияют на будущие результаты. Затем повторно запустите базу данных db = sqlite3.connect ('/ home / me / .config / banshee-1 / banshee.db') cursor = db.cursor () sql = ('УДАЛИТЬ из кортетов, в которых TrackID в (SELECT TrackID from (SELECT TrackID как trackid, count (TrackID) как g из группы корреляций TitleLowered, ArtistID, AlbumID, Title), где g & gt; 1) ') для i в a_trackid: cursor.execute (sql) db.commit () db.close ( )