Fix metaData revisionDates that were left as 0 from upgrades. Thanks to Dale Trexe for the script which inspired this upgrade sub. Fixes bug #12339.
This commit is contained in:
parent
93f583d069
commit
4f74c4cd3e
2 changed files with 58 additions and 0 deletions
|
|
@ -2,6 +2,8 @@
|
||||||
- fixed #12379: userImport documentation error
|
- fixed #12379: userImport documentation error
|
||||||
- fixed #12382: WebGUI::Crud does not work with all form types
|
- fixed #12382: WebGUI::Crud does not work with all form types
|
||||||
- fixed: Threads with no posts return the wrong lastReply data.
|
- fixed: Threads with no posts return the wrong lastReply data.
|
||||||
|
- fixed #12339: Upgrade to 7.10 causes metadata values to "disappear" (Dale Trexel)
|
||||||
|
|
||||||
|
|
||||||
7.10.26
|
7.10.26
|
||||||
- fixed: Template diagnostics when called without a session asset.
|
- fixed: Template diagnostics when called without a session asset.
|
||||||
|
|
|
||||||
|
|
@ -31,10 +31,66 @@ my $quiet; # this line required
|
||||||
my $session = start(); # this line required
|
my $session = start(); # this line required
|
||||||
|
|
||||||
# upgrade functions go here
|
# upgrade functions go here
|
||||||
|
fixMetaDataRevisionDates($session);
|
||||||
|
|
||||||
finish($session); # this line required
|
finish($session); # this line required
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Describe what our function does
|
||||||
|
sub fixMetaDataRevisionDates {
|
||||||
|
my $session = shift;
|
||||||
|
print "\tCheck to see if metaData has bad revision dates... " unless $quiet;
|
||||||
|
my $getMeta0 = $session->db->read(
|
||||||
|
'SELECT fieldId, assetId, value from metaData_values where revisionDate=0'
|
||||||
|
);
|
||||||
|
my $getRevisionDates = $session->db->prepare(
|
||||||
|
'select revisionDate from assetData where assetId=? order by revisionDate'
|
||||||
|
);
|
||||||
|
my $getMetaValue = $session->db->prepare(
|
||||||
|
'select value from metaData_values where assetId=? and fieldId=? and revisionDate=?'
|
||||||
|
);
|
||||||
|
my $updateMetaValue = $session->db->prepare(
|
||||||
|
'UPDATE metaData_values set value=? where assetId=? AND fieldId=? and revisionDate=?'
|
||||||
|
);
|
||||||
|
my $insertMetaValue = $session->db->prepare(
|
||||||
|
'INSERT INTO metaData_values (assetId, fieldId, value, revisionDate) VALUES (?,?,?,?)'
|
||||||
|
);
|
||||||
|
##Get each metaData_value entry
|
||||||
|
METAENTRY: while (my $metaEntry = $getMeta0->hashRef) {
|
||||||
|
$getRevisionDates->execute([$metaEntry->{assetId}]);
|
||||||
|
##Get all revisionDates for the asset in that entry
|
||||||
|
REVISIONDATE: while (my ($revisionDate) = $getRevisionDates->array) {
|
||||||
|
##Find the metaData value for that revisionDate
|
||||||
|
$getMetaValue->execute([$metaEntry->{assetId}, $metaEntry->{fieldId}, $revisionDate, ]);
|
||||||
|
my ($metaValue) = $getMetaValue->array;
|
||||||
|
##If that matches the current entry, we're done with this revisionDate
|
||||||
|
next REVISIONDATE if $metaValue eq $metaEntry->{value};
|
||||||
|
##It doesn't match, so we have to fix it.
|
||||||
|
##Update a bad entry
|
||||||
|
if (defined $metaValue) {
|
||||||
|
$updateMetaValue->execute([
|
||||||
|
@{$metaEntry}{qw/value assetId fieldId/}, $revisionDate,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
##Insert a new one
|
||||||
|
else {
|
||||||
|
$insertMetaValue->execute([
|
||||||
|
@{$metaEntry}{qw/assetId fieldId value/}, $revisionDate,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$getMeta0->finish;
|
||||||
|
$getRevisionDates->finish;
|
||||||
|
$getMetaValue->finish;
|
||||||
|
$insertMetaValue->finish;
|
||||||
|
$updateMetaValue->finish;
|
||||||
|
$session->db->write('delete from metaData_values where revisionDate=0');
|
||||||
|
print "DONE!\n" unless $quiet;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Describe what our function does
|
# Describe what our function does
|
||||||
#sub exampleFunction {
|
#sub exampleFunction {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue