User tests: Successful: Unsuccessful:
Currently when you have a problem in the Core Database (com_admin / installation tables) if there is any error you can fix it in the Extensions -> Manage -> Database, where it can show if you have any error in the database and which is.
The same doesn’t happen when you install a extension and you have problem on it, with this feature you can fix the extension without needing to re-install or even use queries in the joomla database.
Improvement of the Extensions -> Manage -> Database view for fixing now not only the core Joomla database but also 3rd party extensions
You can test with any feature:
To check the problems get your pointer over in the Errors column, a tooltip will pop
Here is an example of my extension:
https://github.com/NunoLopes96/component_joomla
Use this query:
update #__schemas
set version_id='0.0.12' where extension_id='10000'; (in my case)
drop table #__students
;
After selecting my component the table came back again and the fix was successful
There will be 3 types of badge in Errors column in the table:
Success : There are no Problems on the database
Warning : There are only errors related to versions (Database schema or Update version) and non in the database.
Danger : There are errors on the database
For more information on the problems you can pass your mouse over the Errors:
note: This extension has their Update Version and Database Schema version correct but still there are errors in the database
note: There are no errors in the database, only the Database Schema version and the Update Version are incorrect, still you can fix this.
Category | ⇒ | Administration com_installer Language & Strings |
Status | New | ⇒ | Pending |
Labels |
Added:
?
?
|
I have tested this item
Nice work and something I was looking for since the db fixer got added to the core. Thanks @roland-d for the fixes and @NunoLopes96 for your work on this.
I have tested this item
Status | Pending | ⇒ | Ready to Commit |
RTC
Is it really necessary to use the session to store variables? From a quick glance the state of the model should be used for that or even defined variables in the model.
The model also compiles to much of HTML code. Would be nice to find a way to avoid that. Also get rid of the 700 extension (obviously I do miss here something).
The rest looks ok, and I would be happy to get that merged.
Labels |
Added:
?
|
Is it really necessary to use the session to store variables?
I don't know :) My first priority was to bring the code in-sync with the 4.0-dev branch. I can see if we can do this different.
The model also compiles to much of HTML code. Would be nice to find a way to avoid that.
I am thinking we can do this with a layout.
Also get rid of the 700 extension (obviously I do miss here something).
Yes, as mentioned earlier this is the ID of the Joomla core. This is used throughout the core to identify the core files. Issue #20500 you mentioned, also seems to state we can keep this. For now I want to keep this ID until we have a solid solution for changing this.
Labels |
Removed:
?
|
Labels |
Added:
?
|
Select all and click the Fix button.
An error has occurred.
1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '4.0.0-2018-03-05')' at line 3
Call stack
# Function Location
1 () JROOT\libraries\vendor\joomla\database\src\Mysqli\MysqliStatement.php:135
2 Joomla\Database\Mysqli\MysqliStatement->__construct() JROOT\libraries\vendor\joomla\database\src\Mysqli\MysqliDriver.php:874
3 Joomla\Database\Mysqli\MysqliDriver->prepareStatement() JROOT\libraries\vendor\joomla\database\src\DatabaseDriver.php:1755
4 Joomla\Database\DatabaseDriver->setQuery() JROOT\administrator\components\com_installer\Model\DatabaseModel.php:457
5 Joomla\Component\Installer\Administrator\Model\DatabaseModel->fixSchemaVersion() JROOT\administrator\components\com_installer\Model\DatabaseModel.php:258
6 Joomla\Component\Installer\Administrator\Model\DatabaseModel->fix() JROOT\administrator\components\com_installer\Controller\DatabaseController.php:58
7 Joomla\Component\Installer\Administrator\Controller\DatabaseController->fix() JROOT\libraries\src\MVC\Controller\BaseController.php:710
8 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT\libraries\src\Dispatcher\Dispatcher.php:161
9 Joomla\CMS\Dispatcher\Dispatcher->dispatch() JROOT\libraries\src\Dispatcher\LegacyDispatcher.php:71
10 Joomla\CMS\Dispatcher\LegacyDispatcher->dispatch() JROOT\libraries\src\Component\ComponentHelper.php:350
11 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT\libraries\src\Application\AdministratorApplication.php:106
12 Joomla\CMS\Application\AdministratorApplication->dispatch() JROOT\libraries\src\Application\AdministratorApplication.php:149
13 Joomla\CMS\Application\AdministratorApplication->doExecute() JROOT\libraries\src\Application\CMSApplication.php:368
14 Joomla\CMS\Application\CMSApplication->execute() JROOT\administrator\includes\app.php:38
15 require_once() JROOT\administrator\index.php:36
In PHP error log:
PHP Notice: Undefined offset: 10000 in \administrator\components\com_installer\Model\DatabaseModel.php on line 254
PHP Notice: Undefined index: extension in \administrator\components\com_installer\Model\DatabaseModel.php on line 258
PHP Notice: Trying to get property 'extension_id' of non-object in \administrator\components\com_installer\Model\DatabaseModel.php on line 258
When going to the list, it shows no results. You have to use the filters to see entries.
Remeber after any changes click "Find Problems" to refresh the cache
I don't see the Find Problems
button.
Even if you make it shorter in English to prevent it wrapping it may still wrap in other languages
@brianteeman I understand that, was more wondering if there is a new design/classes/functions to be used or if this is how it is at the moment in J4.
Ah. Iirc they are still being decided
I hope this alert boxes will get a restyle in the new template anyway, so we should not bother about being wrapped for now. As long as you do Factory::getApplication()->enqueueMessage
, you should be fine.
Does it need to say "update version" - isn't it enough to simply say "version"
I found the word "update" a little confusing
@brianteeman I have removed the word Update and I added the No items found message. As for the Status filter, it was there when I took over this PR. I guess it comes from the Manage view. Now I wonder if this filter has any use. If we are going to keep it, I can add the Status column to this list, otherwise we can just remove this filter.
Unless I miss something I can't see any reason to have the status column. Not even sure it makes sense even if you put it back. For example a component never has a status of anything other than enabled or disabled
Really looking forward to this being in core
The status filter has been removed.
Looks good! Description
with the title name in the popover. It is like that on Manage page (tooltip needs to be changed to popover).
Search in extension name. Prefix with ID: to search for an extension ID.
Searching on ID:700
results in Unknown column 'schemas.update_site_id' in 'where clause'
For the Errors
column, should the badges be Errors
and not Problems
?
In the screenshot, there is a horizontal line between the problem(s) and the stats, but this is not case.
I have tested this item
THANK YOU!
I have tested this item
Thank you guys very much for the hard work in the last days. Really appreciated!
Status | Ready to Commit | ⇒ | Fixed in Code Base |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2018-06-16 08:05:13 |
Closed_By | ⇒ | laoneo |
Can you fix the conflicts here and then we need some tests. Nice addon for extension developers!