diff --git a/src/database/migrations/migration25-26.sql b/src/database/migrations/migration25-26.sql index 9d03fa8c527ff3b86e1c39adfd184ecbc3a0e47d..d7a4c791b2fc727b744597fd5507a911eabbe32b 100644 --- a/src/database/migrations/migration25-26.sql +++ b/src/database/migrations/migration25-26.sql @@ -105,3 +105,9 @@ MediaGroup::index( MediaGroup::Indexes::LastModificationDate, 26 ), " AND file_type = " + std::to_string( static_cast>( IFile::Type::Unknown ) ), + +/* + * Fix external files is_network state + */ +"UPDATE " + File::Table::Name + " SET is_network = 1" + " WHERE is_external = 1 AND substr(mrl, 0, 7) != 'file://'", diff --git a/test/unittest/MiscTests.cpp b/test/unittest/MiscTests.cpp index 0b22b3c99c9b4765255cadc4e8da51c43e6d5a03..c4df2076243389a5bbd01c638fe8512bbcdc931a 100644 --- a/test/unittest/MiscTests.cpp +++ b/test/unittest/MiscTests.cpp @@ -687,4 +687,12 @@ TEST_F( DbModel, Upgrade25to26 ) auto encodedFile = File::fetch( ml.get(), 6 ); ASSERT_NE( nullptr, encodedFile ); ASSERT_EQ( "udp://@224.10.50.36:5004", encodedFile->mrl() ); + ASSERT_TRUE( encodedFile->isNetwork() ); + + const std::string req = "SELECT * FROM " + File::Table::Name + + " WHERE is_network = 1"; + auto networkFiles = File::fetchAll( ml.get(), req ); + ASSERT_EQ( 1u, networkFiles.size() ); + ASSERT_EQ( networkFiles[0]->id(), encodedFile->id() ); + }