summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Vrátil <dvratil@redhat.com>2014-04-22 09:28:07 (GMT)
committerDan Vrátil <dvratil@redhat.com>2014-04-22 09:28:10 (GMT)
commit4ca8b846baaad48ebbd723f6411f9571a3b0f5ad (patch)
tree6f94c5191c3f7d451b663afe63d28ad0f6e886b4
parenta5542751bc147c7f74131006339b55e6339b3e9f (diff)
Remove the invalid GID part from PartTable before starting PartTable migration
More people than we expected have invalid 'GID' part in their PartTable, which breaks migration to schema 25, because it expects all part types to have a valid name. To work around this fact, we DELETE all parts with name 'GID' from PartTable before starting the actual migration. This will not fix the migration for people with other invalid parts, but I haven't heard of any such. To make this completely bullet-proof, we would need to iterate through all entries, which would be massively slower than current INSERT INTO ... SELECT FROM approach. Distributions, this is a good choice for backporting into 1.12.1 ;-) BUG: 331867 FIXED-IN: 1.12.2
-rw-r--r--server/src/storage/dbupdater.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/server/src/storage/dbupdater.cpp b/server/src/storage/dbupdater.cpp
index ccaf584..d6368b5 100644
--- a/server/src/storage/dbupdater.cpp
+++ b/server/src/storage/dbupdater.cpp
@@ -261,6 +261,15 @@ bool DbUpdater::complexUpdate_25()
}
}
+ {
+ // It appears that more users than expected have the invalid "GID" part in their
+ // PartTable, which breaks the migration below (see BKO#331867), so we apply this
+ // wanna-be fix to remove the invalid part before we start the actual migration.
+ QueryBuilder qb( QLatin1String( "PartTable" ), QueryBuilder::Delete );
+ qb.addValueCondition( QLatin1String( "PartTable.name" ), Query::Equals, QLatin1String( "GID" ) );
+ qb.exec();
+ }
+
akDebug() << "Creating a PartTable_new";
{
TableDescription description;