Finalize link fails, does not match cms version 4 Years, 8 Months ago
|
Karma: 0
|
Hi Edwin,
Attempting to upgrade Joomla from 3.8.8 to 3.9.15 and JMS 1.3.76. I have two slave sites and a shared users site.
I have upgraded JMS to 1.3.76 and then Joomla to 3.9.15 in the master. Then I apply the patches and then the database fix. Next I log in to slave 1 and apply the finalize link:
administrator/index.php?option=com_joomlaupdate&view=update&layout=finaliseconfirm
But it bounces me out to the Home page of slave 1. Slave 1 does have an SSL cert so the header is https. If I turn off force SSL and change it to http, it still bounces me out of the admin area.
In Slave 1, if I check the database it says this:
5 Database problems found...
Database schema version (joomla) does not match CMS version (3.9.10-2019-07-09).
Database update version (None) does not match CMS version (3.9.15).
Table 'slave1_session' does not have index 'client_id_guest'. (From file 3.9.7-2019-04-23.sql.)
Table 'slave1_template_styles' should not have index 'idx_home'. (From file 3.9.8-2019-06-15.sql.)
The Joomla! Core database tables have not been converted yet to UTF-8 Multibyte (utf8mb4).
If I log in to slave 2 and apply the finalize link it works, but when I check Extensions/Manage/Database in slave 2 it gives me this:
Table 'slave2_session' does not have index 'client_id_guest'. (From file 3.9.7-2019-04-23.sql.)
The Joomla! Core database tables have not been converted yet to UTF-8 Multibyte (utf8mb4).
And clicking "Fix" gives me this:
An error has occurred: 1347 'account_slave2.#__session' is not BASE TABLE
---
When I do the "finalize" for the Users site, it works and there are no DB errors.
|
|
|
Last Edit: 2020/03/01 21:56 By azurelink.
|
|
Re: Finalize link fails, does not match cms version 4 Years, 8 Months ago
|
Karma: 54
|
Concerning the Slave 1 and the finalize procedure, I don't know like that.
Based on the message, it seems that there are missing indexes on some tables.
If the Joomla "finalize" is not able to fix that, the could be to use the JMS Maintenance OR the PHPMyAdmin to fix manually the errors.
All the script that are executed by Joomla during the finalization and "fix database" are located in the administrator/components/com_admin/sql/updates/mysql
Concerning the Slave 2, it seems that in fact the error that you have is due to the fact that the session table is a link on the session table from another site.
This is the "NOT BASE TABLE" that show that this is a link.
So you have to start by fixing the "parent" website on which the "#__session" table is linked and when this is done, you have to DROP the VIEW on the "#__session" to rebuilt it with and Open/Save in JMS of the slave site "slave2".
Before applying the Open/Save, cross-check that you don't have any additional table or extensions that would be added in Slave2 coming from its "parent" site.
You can verify that with the JMS Tool menu.
I hope this will help you upgrading your slave sites.
|
|
|
|
|
Re: Finalize link fails, does not match cms version 4 Years, 8 Months ago
|
Karma: 0
|
edwin2win wrote:
So you have to start by fixing the "parent" website on which the "#__session" table is linked and when this is done, you have to DROP the VIEW on the "#__session" to rebuilt it with and Open/Save in JMS of the slave site "slave2".
Before applying the Open/Save, cross-check that you don't have any additional table or extensions that would be added in Slave2 coming from its "parent" site.
You can verify that with the JMS Tool menu.
I don't know how to "fix the "parent" website on which the "#__session" table is linked"?
Do you mean in JMS Maintenance to apply the sql fixes for the master?
By DROP the VIEW, do you mean to drop the View/#__session tables for each of the slaves?
And by Open/Save do you mean to go in JMS to Manage Sites and just open each site and save it? I did all of those things (saving initially ran into a permissions error (444) on the config file, which worked after I changed it to 644.
But I'm still getting the BASE TABLE error for both slaves.
Also, when I try to go to the finalise link in Slave 1, it now bumps me out to the public Home page.
---
This is further complicated by the fact that I have a shared users slave site to manage them. And each slave site has its own tables in the database. So I'm not sure which session table is being referred to.
|
|
|
Last Edit: 2020/03/07 16:51 By azurelink.
|
|
Re: Finalize link fails, does not match cms version 4 Years, 8 Months ago
|
Karma: 54
|
To identify which is the "parent" site, use the JMS Tool menu and on the "table" tabs, put the cursor over the "link" icons to see the link info.
The table prefix, generally help you identifying where it link points (its references).
When you have identified the "parent" website and therefore its DB and table prefix, you know which is the physical table that contain the records.
When a table structure is modified, unfortunately, MySQL does NOT automatically reflect those changes in the link. MySQL keep a snapshot of the original structure.
Therefore, to update this link, it must be rebuild.
To rebuild the link, it is required to delete it (DROP VIEW) and to rebuild it.
Rebuild a link can be done with JMS Manage site and the Open/Save of the slave site definition.
When you save a slave site definition, JMS rebuild all the missing tables and links according to the JMS Template rule associated with the slave site definition.
When you update the "Global Configuration" of a slave site using the "Global Configuration" menu of this slave site, Joomla change the permission of the "configuration.php" to set "Read Only".
By security, JMS does NOT modify this permission when you Open/Save a slave site to avoid overiding changes that you would have done with the Global Configuration instead of with JMS Manage site.
So that you are alerted that a change was done via "Global Configuration" and give you potentially the possiblity to keep a backup to allow you verifying what was changed.
|
|
|
|
|
|