+ /**
+ * Add missing entries in some post related tables
+ *
+ * @return void
+ */
+ private static function addMissingEntries()
+ {
+ Logger::notice('Adding missing entries');
+
+ $rows = 0;
+ $userposts = DBA::select('post-user', [], ["`uri-id` not in (select `uri-id` from `post`)"]);
+ while ($fields = DBA::fetch($userposts)) {
+ $post_fields = DBStructure::getFieldsForTable('post', $fields);
+ DBA::insert('post', $post_fields, Database::INSERT_IGNORE);
+ $rows++;
+ }
+ DBA::close($userposts);
+ if ($rows > 0) {
+ Logger::notice('Added post entries', ['rows' => $rows]);
+ } else {
+ Logger::notice('No post entries added');
+ }
+
+ $rows = 0;
+ $userposts = DBA::select('post-user', [], ["`gravity` = ? AND `uri-id` not in (select `uri-id` from `post-thread`)", GRAVITY_PARENT]);
+ while ($fields = DBA::fetch($userposts)) {
+ $post_fields = DBStructure::getFieldsForTable('post-thread', $fields);
+ $post_fields['commented'] = $post_fields['changed'] = $post_fields['created'];
+ DBA::insert('post-thread', $post_fields, Database::INSERT_IGNORE);
+ $rows++;
+ }
+ DBA::close($userposts);
+ if ($rows > 0) {
+ Logger::notice('Added post-thread entries', ['rows' => $rows]);
+ } else {
+ Logger::notice('No post-thread entries added');
+ }
+
+ $rows = 0;
+ $userposts = DBA::select('post-user', [], ["`gravity` = ? AND `id` not in (select `post-user-id` from `post-thread-user`)", GRAVITY_PARENT]);
+ while ($fields = DBA::fetch($userposts)) {
+ $post_fields = DBStructure::getFieldsForTable('post-thread-user', $fields);
+ $post_fields['commented'] = $post_fields['changed'] = $post_fields['created'];
+ DBA::insert('post-thread-user', $post_fields, Database::INSERT_IGNORE);
+ $rows++;
+ }
+ DBA::close($userposts);
+ if ($rows > 0) {
+ Logger::notice('Added post-thread-user entries', ['rows' => $rows]);
+ } else {
+ Logger::notice('No post-thread-user entries added');
+ }