در زمان مهاجرت از یک سیستم به سیستم دیگر یا از یک نسخه قدیمی به نسخه جدیدتر می بایست دقت زیادی به پیش نیاز ها بک اند و فرانت اند داشته باشیم. در بروزرسانی هسته جوملا از نسخه های قدیمی ۲٫۵ و ۳٫۰ به نسخه های جدیدتر نیازمند یک سری عملیات های تخصصی بروی Database هستیم.
میدانیم که بر اساس قابلیت بسیار ویژه ای که در هسته جوملا گنجانده شده شما میتونید بعد از هر بار به روزرسانی برای بهینه سازی ساختار جداول دیتابیس هسته، از طریق مسیر مدیریت > افزونه ها > دیتابیس ( Database ) > بازسانی (FIX) نسبت به اصلاح ساختار دیتابیس خود اقدام کنید اما گاهی اوقات مشاهده میشود که بعد از آپدیت هسته جوملا به نسخه های جدیدتر در این صفحه با خطاهای مختلف و متعددی روبرو می شوید.
خطا:
1 |
Database schema version (in #__schemas): 3.7.4-2017-07-05. |
این خطا اشاره به ناهماهنگی نسخه دیتابیس دارد. برای حل این موضوع بهترین و کاربردی شیوه ای که میتوان به آن اشاره کرد به صورت زیر می باشد.
[quote]پیشنهاد ویژه: سایت آماده تهیه غذای خانگی مادرانه[/quote]
برای شروع کافی ست یک فایل بنام postupdate.php در مسیر Public_html >administrator ایجاد کنید و کدهای زیر را داخل آن کپی کنید.
حالا به دنبال تگ زیر بگردید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
<?php /** * @package Joomla.Administrator * * @copyright Copyright (C) 2016 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ /** * Define the application's minimum supported PHP version as a constant so it can be referenced within the application. */ define('JOOMLA_MINIMUM_PHP', '5.3.10'); if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<')) { die('Your host needs to use PHP ' . JOOMLA_MINIMUM_PHP . ' or higher to run this version of Joomla!'); } /** * Constant that is checked in included files to prevent direct access. * define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower */ define('_JEXEC', 1); // Load the administrator application's path constants if (file_exists(__DIR__ . '/defines.php')) { include_once __DIR__ . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', __DIR__); require_once JPATH_BASE . '/includes/defines.php'; } require_once JPATH_BASE . '/includes/framework.php'; require_once JPATH_BASE . '/includes/helper.php'; // Account for moved JToolbarHelper class in 3.9 if (file_exists(JPATH_BASE . '/includes/toolbar.php')) { require_once JPATH_BASE . '/includes/toolbar.php'; } else { require_once JPATH_BASE . '/includes/subtoolbar.php'; } // Boot JApplicationAdministrator so the application references in the factory resolve correctly. JFactory::getApplication('administrator'); // Set the component path (un)constants define('JPATH_COMPONENT', JPATH_ADMINISTRATOR . '/components/com_joomlaupdate'); define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR . '/components/com_joomlaupdate'); define('JPATH_COMPONENT_SITE', JPATH_SITE . '/components/com_joomlaupdate'); // Load the update component's model to run the cleanup methods JModelLegacy::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . '/models', 'JoomlaupdateModel'); /** @var JoomlaupdateModelDefault $model */ $model = JModelLegacy::getInstance('default', 'JoomlaupdateModel'); // Make sure we got the model if (!($model instanceof JoomlaupdateModelDefault)) { echo 'Could not load update component model, please check the logs for additional details.' . PHP_EOL; exit(1); } // Load up the logger JLog::addLogger( array( 'format' => '{DATE}\t{TIME}\t{LEVEL}\t{CODE}\t{MESSAGE}', 'text_file' => 'joomla_update.php', ), JLog::INFO, array('Update', 'databasequery', 'jerror') ); JLog::add('Starting manual update using postupdate', JLog::INFO, 'Update'); // Load the Joomla library and update component language files JFactory::getLanguage()->load('lib_joomla'); JFactory::getLanguage()->load('com_joomlaupdate'); JLog::add(JText::_('COM_JOOMLAUPDATE_UPDATE_LOG_FINALISE'), JLog::INFO, 'Update'); // Finalize the update if ($model->finaliseUpgrade() === false) { echo 'Failed to finalize the upgrade, please check the logs for additional details.' . PHP_EOL; exit(1); } JLog::add(JText::_('COM_JOOMLAUPDATE_UPDATE_LOG_CLEANUP'), JLog::INFO, 'Update'); // Cleanup after the update $model->cleanUp(); JLog::add(JText::sprintf('COM_JOOMLAUPDATE_UPDATE_LOG_COMPLETE', JVERSION), JLog::INFO, 'Update'); JLog::add('Finished manual update using postupdate', JLog::INFO, 'Update'); echo 'Update to ' . JVERSION . ' completed successfully.' . PHP_EOL; |
پس از اینکه فایل مذکور را در هسته جوملای خود ایجاد کردید حالا می بایست این فایل را از طریق مرورگر فراخوانی کنید.
http://mysitename.com/administrator/postupdate.php
با انجام این کار کلیه جداول دیتابیس جوملا تعمیر و بازسازی می شوند و کار دیگری باقی نمانده و سایت شما در این لحظه به روزرسانی شده است و با این راهکار ساده این مشکل بطور کامل مرتفع خواهد شد.
[quote]پیشنهاد ویژه: ایران مدیکال؛ سامانه نوبت دهی اینترنتی پزشکان و بیمارستان[/quote]
از اینکه این مقاله کوتاه را مطالعه کردید بسیار متشکریم.
[scrolling_box display=”category” category=”93″ count=”10″ items=”4″ rows=”1″ autoplay=”yes”]