Added release comment support, ref #568

This commit is contained in:
emeric
2025-02-07 17:02:08 +01:00
parent df93425748
commit 4fe6edb87f
10 changed files with 51 additions and 24 deletions
+11 -1
View File
@@ -35,7 +35,7 @@ namespace lms::db
{
namespace
{
static constexpr Version LMS_DATABASE_VERSION{ 80 };
static constexpr Version LMS_DATABASE_VERSION{ 81 };
}
VersionInfo::VersionInfo()
@@ -1063,6 +1063,15 @@ FROM tracklist)");
utils::executeCommand(*session.getDboSession(), "UPDATE scan_settings SET scan_version = scan_version + 1");
}
void migrateFromV80(Session& session)
{
// Add release comment support
utils::executeCommand(*session.getDboSession(), "ALTER TABLE release ADD COLUMN comment TEXT NOT NULL DEFAULT ''");
// Just increment the scan version of the settings to make the next scan rescan everything
utils::executeCommand(*session.getDboSession(), "UPDATE scan_settings SET scan_version = scan_version + 1");
}
bool doDbMigration(Session& session)
{
constexpr std::string_view outdatedMsg{ "Outdated database, please rebuild it (delete the .db file and restart)" };
@@ -1119,6 +1128,7 @@ FROM tracklist)");
{ 77, migrateFromV77 },
{ 78, migrateFromV78 },
{ 79, migrateFromV79 },
{ 80, migrateFromV80 },
};
bool migrationPerformed{};
@@ -255,6 +255,7 @@ namespace lms::db
void visitLabels(const std::function<void(const Label::pointer& label)>& _func) const;
core::EnumSet<Advisory> getAdvisories() const;
std::string_view getBarcode() const { return _barcode; }
std::string_view getComment() const { return _comment; }
ObjectPtr<Image> getImage() const;
// Setters
@@ -270,6 +271,7 @@ namespace lms::db
void addLabel(ObjectPtr<Label> releaseType);
void addReleaseType(ObjectPtr<ReleaseType> releaseType);
void setBarcode(std::string_view barcode) { _barcode = barcode; }
void setComment(std::string_view comment) { _comment = comment; }
void setImage(ObjectPtr<Image> image);
// Get the artists of this release
@@ -291,6 +293,7 @@ namespace lms::db
Wt::Dbo::field(a, _artistDisplayName, "artist_display_name");
Wt::Dbo::field(a, _isCompilation, "is_compilation");
Wt::Dbo::field(a, _barcode, "barcode");
Wt::Dbo::field(a, _comment, "comment");
Wt::Dbo::hasMany(a, _tracks, Wt::Dbo::ManyToOne, "release");
Wt::Dbo::belongsTo(a, _image, "image", Wt::Dbo::OnDeleteSetNull);
@@ -316,6 +319,7 @@ namespace lms::db
std::string _artistDisplayName;
bool _isCompilation{}; // See https://picard-docs.musicbrainz.org/en/appendices/tag_mapping.html#compilation-itunes-5
std::string _barcode;
std::string _comment;
Wt::Dbo::ptr<Image> _image;
Wt::Dbo::collection<Wt::Dbo::ptr<Track>> _tracks;