X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=update.php;h=85a06892f04c99a542545221ceba5bdfa4f0ad07;hb=6cdafb6b63451b5bd1feb24a5e16c6bad6e059c9;hp=ed5962cf1f1e8230359a8b8df5586df6fe624b71;hpb=d16a648d37057e7e2d36f20b3de7a239dc2a0ca9;p=friendica.git diff --git a/update.php b/update.php index ed5962cf1f..85a06892f0 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ . * - * Automatic post-databse structure change updates + * Automatic post-database structure change updates * * These functions are responsible for doing critical post update changes to the data (not the structure) in the database. * @@ -40,8 +40,11 @@ * If you need to run a script before the database update, name the function "pre_update_4712()" */ +use Friendica\Core\Config\ValueObject\Cache; use Friendica\Core\Logger; +use Friendica\Core\Protocol; use Friendica\Core\Storage\Capability\ICanReadFromStorage; +use Friendica\Core\Storage\Type\Database as DatabaseStorage; use Friendica\Core\Update; use Friendica\Core\Worker; use Friendica\Database\Database; @@ -55,8 +58,9 @@ use Friendica\Model\Notification; use Friendica\Model\Photo; use Friendica\Model\Post; use Friendica\Model\Profile; +use Friendica\Model\User; +use Friendica\Protocol\Delivery; use Friendica\Security\PermissionSet\Repository\PermissionSet; -use Friendica\Worker\Delivery; // Post-update script of PR 5751 function update_1298() @@ -75,11 +79,11 @@ function update_1298() $a->strings = []; // First we get the the localizations - if (file_exists("view/lang/$lang/strings.php")) { - include "view/lang/$lang/strings.php"; + if (file_exists('view/lang/$lang/strings.php')) { + include 'view/lang/$lang/strings.php'; } - if (file_exists("addon/morechoice/lang/$lang/strings.php")) { - include "addon/morechoice/lang/$lang/strings.php"; + if (file_exists('addon/morechoice/lang/$lang/strings.php')) { + include 'addon/morechoice/lang/$lang/strings.php'; } $localizedStrings = $a->strings; @@ -108,7 +112,7 @@ function update_1298() } } - Logger::notice($translateKey . " fix completed", ['action' => 'update', 'translateKey' => $translateKey, 'Success' => $success, 'Fail' => $fail ]); + Logger::notice($translateKey . ' fix completed', ['action' => 'update', 'translateKey' => $translateKey, 'Success' => $success, 'Fail' => $fail ]); } return Update::SUCCESS; } @@ -127,7 +131,7 @@ function update_1309() continue; } - $deliver_options = ['priority' => PRIORITY_MEDIUM, 'dont_fork' => true]; + $deliver_options = ['priority' => Worker::PRIORITY_MEDIUM, 'dont_fork' => true]; Worker::add($deliver_options, 'Delivery', Delivery::POST, $item['id'], $entry['cid']); Logger::info('Added delivery worker', ['item' => $item['id'], 'contact' => $entry['cid']]); DBA::delete('queue', ['id' => $entry['id']]); @@ -145,10 +149,10 @@ function update_1315() function update_1318() { - DBA::update('profile', ['marital' => "In a relation"], ['marital' => "Unavailable"]); - DBA::update('profile', ['marital' => "Single"], ['marital' => "Available"]); + DBA::update('profile', ['marital' => 'In a relation'], ['marital' => 'Unavailable']); + DBA::update('profile', ['marital' => 'Single'], ['marital' => 'Available']); - Worker::add(PRIORITY_LOW, 'ProfileUpdate'); + Worker::add(Worker::PRIORITY_LOW, 'ProfileUpdate'); return Update::SUCCESS; } @@ -295,7 +299,7 @@ function update_1349() } if (!DBA::e("UPDATE `item` INNER JOIN `item-activity` ON `item`.`uri-id` = `item-activity`.`uri-id` - SET `vid` = `item-activity`.`activity` + 1 WHERE `gravity` = ? AND (`vid` IS NULL OR `vid` = 0)", GRAVITY_ACTIVITY)) { + SET `vid` = `item-activity`.`activity` + 1 WHERE `gravity` = ? AND (`vid` IS NULL OR `vid` = 0)", Item::GRAVITY_ACTIVITY)) { return Update::FAILED; } @@ -970,7 +974,7 @@ function update_1429() return Update::FAILED; } - if (!DBA::e("UPDATE `fcontact` SET `uri-id` = null WHERE NOT `uri-id` IS NULL")) { + if (DBStructure::existsTable('fcontact') && !DBA::e("UPDATE `fcontact` SET `uri-id` = null WHERE NOT `uri-id` IS NULL")) { return Update::FAILED; } @@ -978,7 +982,7 @@ function update_1429() return Update::FAILED; } - DI::config()->set("system", "post_update_version", 1423); + DI::keyValue()->set('post_update_version', 1423); return Update::SUCCESS; } @@ -987,9 +991,9 @@ function update_1434() { $name = DI::config()->get('storage', 'name'); - // in case of an empty config, set "Database" as default storage backend + // In case of an empty config, set "Database" as default storage backend if (empty($name)) { - DI::config()->set('storage', 'name', \Friendica\Core\Storage\Type\Database::getName()); + DI::config()->set('storage', 'name', DatabaseStorage::getName()); } // In case of a Using deprecated storage class value, set the right name for it @@ -1009,6 +1013,10 @@ function update_1438() function update_1439() { + if (!DBStructure::existsTable('fcontact')) { + return Update::SUCCESS; + } + $intros = DBA::select('intro', ['id', 'fid'], ["NOT `fid` IS NULL AND `fid` != ?", 0]); while ($intro = DBA::fetch($intros)) { $fcontact = DBA::selectFirst('fcontact', ['url'], ['id' => $intro['fid']]); @@ -1020,6 +1028,8 @@ function update_1439() } } DBA::close($intros); + + return Update::SUCCESS; } function update_1440() @@ -1078,25 +1088,142 @@ function update_1446() // In case the distributed cache driver is the default value, but the current cache driver isn't default, // we assume that the distributed cache driver should be the same as the current cache driver - if ( - $distributed_cache_driver_source === \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC - && $cache_driver_source > \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC - ) { + if ($distributed_cache_driver_source === Cache::SOURCE_STATIC && $cache_driver_source > Cache::SOURCE_STATIC) { DI::config()->set('system', 'distributed_cache_driver', DI::config()->get('system', 'cache_driver')); } return Update::SUCCESS; } -function update_1449() +function update_1451() { - $users = DBA::select('user', ['uid']); - while ($user = DBA::fetch($users)) { - if (Contact::updateSelfFromUserID($user['uid'])) { - Profile::publishUpdate($user['uid']); + DBA::update('user', ['account-type' => User::ACCOUNT_TYPE_COMMUNITY], ['page-flags' => [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP]]); + DBA::update('contact', ['contact-type' => Contact::TYPE_COMMUNITY], ["`forum` OR `prv`"]); + DBA::update('contact', ['manually-approve' => true], ['prv' => true]); + + return Update::SUCCESS; +} + +function update_1457() +{ + $pinned = DBA::select('post-thread-user', ['uri-id', 'author-id'], ['pinned' => true]); + while ($post = DBA::fetch($pinned)) { + Post\Collection::add($post['uri-id'], Post\Collection::FEATURED, $post['author-id']); + } + DBA::close($pinned); + + return Update::SUCCESS; +} + +function update_1480() +{ + DBA::update('contact', ['next-update' => DBA::NULL_DATETIME], ['network' => Protocol::FEDERATED]); + DBA::update('post', ['deleted' => false], ["`uri-id` IN (SELECT `uri-id` FROM `post-user` WHERE NOT `deleted`)"]); + return Update::SUCCESS; +} + +function update_1481() +{ + DBA::e("UPDATE `post-collection` INNER JOIN `post` ON `post`.`uri-id` = `post-collection`.`uri-id` SET `post-collection`.`author-id` = `post`.`author-id` WHERE `post-collection`.`author-id` IS null"); + return Update::SUCCESS; +} + +function update_1491() +{ + DBA::update('contact', ['remote_self' => Contact::MIRROR_OWN_POST], ['remote_self' => Contact::MIRROR_FORWARDED]); + return Update::SUCCESS; +} + +function update_1497() +{ + DBA::e("UPDATE `user` SET `last-activity` = DATE(`login_date`) WHERE `last-activity` IS NULL"); + return Update::SUCCESS; +} + +function update_1502() +{ + DBA::e("UPDATE `pconfig` SET `cat` = 'calendar' WHERE `k` = 'first_day_of_week'"); + return Update::SUCCESS; +} + +function update_1505() +{ + if (!DBStructure::existsTable('config')) { + return Update::SUCCESS; + } + + $conditions = [ + "((`cat` = ?) AND ((`k` LIKE ?) OR (`k` = ?) OR (`k` LIKE ?) OR (`k` = ?))) OR " . + "((`cat` != ?) AND (`k` LIKE ?)) OR " . + "((`cat` = ?) AND (`k` LIKE ?))", + "system", + "post_update_%", + "worker_last_cleaned", + "last%", + "worker_daemon_mode", + "system", + "last_%", + "database", + "update_%", + ]; + + $postUpdateEntries = DBA::selectToArray('config', ['cat', 'k', 'v'], $conditions); + + foreach ($postUpdateEntries as $postUpdateEntry) { + if ($postUpdateEntry['cat'] === 'system') { + DI::keyValue()->set($postUpdateEntry['k'], $postUpdateEntry['v']); + } else { + DI::keyValue()->set(sprintf('%s_%s', $postUpdateEntry['cat'], $postUpdateEntry['k']), $postUpdateEntry['v']); } } - DBA::close($users); + return DBA::delete('config', $conditions) ? Update::SUCCESS : Update::FAILED; +} + +function update_1508() +{ + $config = DBA::selectToArray('config'); + + $newConfig = DI::config()->beginTransaction(); + + foreach ($config as $entry) { + $newConfig->set($entry['cat'], $entry['k'], $entry['v']); + } + + $newConfig->commit(); + + return Update::SUCCESS; +} + +function update_1509() +{ + $addons = DBA::selectToArray('addon'); + + $newConfig = DI::config()->beginTransaction(); + + foreach ($addons as $addon) { + $newConfig->set('addons', $addon['name'], [ + 'last_update' => $addon['timestamp'], + 'admin' => (bool)$addon['plugin_admin'], + ]); + } + + $newConfig->commit(); + + return Update::SUCCESS; +} + +function update_1510() +{ + $blocks = DBA::select('pconfig', ['uid', 'v'], ['cat' => 'blockem', 'k' => 'words']); + while ($block = DBA::fetch($blocks)) { + foreach (explode(',', $block['v']) as $account) { + $id = Contact::getIdForURL(trim($account), 0, false); + if (empty($id)) { + continue; + } + Contact\User::setCollapsed($id, $block['uid'], true); + } + } return Update::SUCCESS; }