Welcome to Geeklog, Anonymous Friday, November 08 2024 @ 08:26 pm EST
Geeklog Forums
upgrade issues fom 1.8.2sr1 to 2.0.0
Page navigation
Habitual
However, trying to get from 1.8.2sr1 to 2.0.0 has been difficult.
I exported my 1.8.1 data to data181.sql and ran the "migrate" option since I'm testing the process on a new server.
This got me to 1.8.2sr1.
I exported my 1.8.2sr1 data to data182.sql and proceeded several times now to attempt the 2.0.0 install. After choosing to migrate the data182.sql, I get only a blank page after the migrate option starts|attempts its function.
I enabled $_CONF['rootdebug'] = true;
and have this message:
256 - 1054: Unknown column 'whos_online' in 'field list' @ /var/www/system/databases/mysqli.class.php line 279
Call Stack
# Function File Line
1 trigger_error /var/www/system/databases/mysqli.class.php 279
2 dbQuery /var/www/system/lib-database.php 213
3 DB_query /var/www/system/lib-sessions.php 486
4 SESS_updateSessionTime /var/www/system/lib-sessions.php 114
5 SESS_sessionCheck /var/www/system/lib-sessions.php 66
6 require_once /var/www/html/lib-common.php 274
7 require_once /var/www/html/index.php 35
array(3) {
["sql"]=>
string(120) "UPDATE gl_sessions SET start_time = 1391725984, whos_online = 1 WHERE (md5_sess_id = '3eab377cf7754a72fd58153b26248c36')"
["ignore_errors"]=>
int(0)
["result"]=>
bool(false)
}
Which if odd since I don't even use the "who's online" feature/block on my 1.8.1 site.
I deleted the block from my data182 "site" and re-exported the db to data182.sql and tried the upgrade to 2.0.0 again with the same result.
cache is cleared.
What should I do to fix this?
Thanks!
Edit: I deleted the who's online block from my 1.8.2sr1 site and tried migrate again, no likey.
Laugh
sess_id
start_time
remote_ip
uid
md5_sess_id
whos_online
topic
The whos_online column is needed even if you do not have the block.
If this table did not get updated there may be others....
Also what plugins do you have installed as some of the non-core ones are incompatible with Geeklog 2.0.0?
Tom
One of the Geeklog Core Developers.
Habitual
I am a c-line kinda of guy, but that field is missing from the table:
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+-------+
| sess_id | int(10) unsigned | NO | PRI | 0 | |
| start_time | int(10) unsigned | NO | MUL | 0 | |
| remote_ip | varchar(39) | NO | MUL | | |
| uid | mediumint(8) | NO | | 1 | |
| md5_sess_id | varchar(128) | YES | | NULL | |
+-------------+------------------+------+-----+---------+-------+
Fields whos_online and topic are missing from the original site's db also.
Suggestions appreciated.
Thank you.
Edit: 1.8.1 plugins shown here...
Habitual
Wed Feb 5 13:39:59 2014 - 108.162.219.50 - 1054: Unknown column 'whos_online' in 'field list' in /home/content/09/9302509/system/lib-sessions.php:486. SQL in question: UPDATE gl_sessions SET start_time = 1391625599, whos_online = 1 WHERE (md5_sess_id = '01007928c4761859d40a65a673bed575')
Wed Feb 5 14:13:48 2014 - 108.162.219.50 - 1054: Unknown column 'whos_online' in 'field list' in /home/content/09/9302509/system/lib-sessions.php:362. SQL in question: INSERT INTO gl_sessions (sess_id, md5_sess_id, uid, start_time, remote_ip, whos_online) VALUES (896629745, '2129977c1ce7b08adac5a4239cd243bf', 1, 1391627628, '108.162.219.50', 1)
Wed Feb 5 14:13:49 2014 - 108.162.219.50 - 1054: Unknown column 'whos_online' in 'field list' in /home/content/09/9302509/system/lib-sessions.php:362. SQL in question: INSERT INTO gl_sessions (sess_id, md5_sess_id, uid, start_time, remote_ip, whos_online) VALUES (672204130, 'e323efeccbaa6302d1b0136dc3c1e832', 1, 1391627629, '108.162.219.50', 1)
Wed Feb 5 14:18:51 2014 - 108.162.219.50 - 1054: Unknown column 'whos_online' in 'field list' in /home/content/09/9302509/system/lib-sessions.php:362. SQL in question: INSERT INTO gl_sessions (sess_id, md5_sess_id, uid, start_time, remote_ip, whos_online) VALUES (1757656990, '1e48bc48d4bb6707c4fed756e893f79d', 1, 1391627931, '108.162.219.50', 1)
It only "started" 2 days ago?
2 archived files both have the insert into statements in the .sql
however both are missing those 2 fields as well in those same .sql files.
It's getting Deep!
I went back 2 years to the file I used to create the "current" site as it is now, seen here...
Thank you for your time. I appreciate it.
remy
So, Laugh is correct, migrate x to x on your new server, than install y,
Or upgrade x to y, than migrate to the new server.
the migrate sql contains drop-table's and recreates the database to the version from where it came from.
Habitual
Site A is the original 1.8.1 site.
Site B is a migrated copy at 1.8.1 and I've encountered no errors AFAICT.
The only plugin I wanted was GUS, so I installed this one.
Why can't I upgrade Site B to 2.0 (Can I skip 1.8.2sr1?)
I also see no table statement(s) for gl_sessions in any of the archives' flat files so this suggestion causes me to wonder if the table will be corrected by an upgrade.
I'll give it a go and see what happens and update this post after I do.
Thanks.
Update: Epic Fail, same error after enabling debug:
Upgrade 1.8.1 on Site B to 2.0.0...
256 - 1054: Unknown column 'whos_online' in 'field list' @ /var/www/system/databases/mysqli.class.php line 279
Laugh
The errors you posted don't deal with the actual upgrade process so I am not sure where it is exactly failing in the upgrade.
What you could do is look at the MySQL file in the Geeklog sql directory and find the gl_session table. Delete your table and recreate the gl_session table using the structure from the file. There are no records that need to be saved from the table. That should get rid of the current error you have but I am sure there will be more since the session table didn't get upgraded then, I am sure other tables like the story table and the topic table that got changed in Geeklog 2.0.0 didn't either. We also don't know if the configuration got updated with the new values.
Sorry I can't be of more help at the moment but I can take a closer look when I get back. BTW do you have a topic_assignments table? That is a new table in Geeklog 2.0.0.
One of the Geeklog Core Developers.
Habitual
Thanks for the assist.
I mis-spoke earlier when I said I didn't see any gl_sessions table statements in the archives' flat files. I forgot about the table prefix option and included the prefix "gl_" in my search.
It is present in geeklog-2.0.0/sql/mysql_tableanddata.php file as shows the two columns I seem to be missing. The same statement in 1.8.1/sql/mysql_tableanddata.php file doesn't have them.
Are you 100% certain that gl_topic_assignments is new to 2.0.0 ?
It it present in Site A's 1.8.1 db, a site I have never ran any updates on since its migration almost 2 years ago.
I have no problem dropping and re-creating a table that only holds transient data, so I may just try that. It's right up my alley.
Thank you for your time.
JJ
Habitual
3 Alter statements to the 1.8.1 db:
ALTER TABLE `dorkblog`.`gl_sessions`
ADD COLUMN `whos_online` TINYINT(1) NOT NULL DEFAULT '1',
ADD COLUMN `topic` VARCHAR(20) NOT NULL AFTER `whos_online`;
...
ALTER TABLE `dorkblog`.`gl_topics`
ADD COLUMN `parent_id` varchar(20) NOT NULL default 'root',
ADD COLUMN `inherit` tinyint(1) NOT NULL default '1';
...
ALTER TABLE `dorkblog`.`gl_users`
ADD COLUMN `stretch` int(8) unsigned NOT NULL default '1';
ADD COLUMN `salt`varchar(64) NOT NULL default '',
ADD COLUMN `algorithm` tinyint(3) NOT NULL default '0',
and then save the db to a newly exported file.sql and then I choose "Migrate" and select the file.
I see the screen that says it was successful, but not the screens following that, usually telling me what the db has but the director(y|ies) doesn't|don't.
The last hurdle is this message:
256 - 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE uid = 3' at line 1 @ /var/www/system/databases/mysqli.class.php line 279
Call Stack
# Function File Line
1 trigger_error /var/www/system/databases/mysqli.class.php 279
2 dbQuery /var/www/system/lib-database.php 213
3 DB_query /var/www/system/lib-security.php 1298
4 SEC_updateUserPassword /var/www/system/lib-security.php 1244
5 SEC_encryptUserPassword /var/www/system/lib-security.php 746
6 SEC_authenticate /var/www/html/users.php 818
array(3) {
["sql"]=>
string(137) "UPDATE gl_users SET passwd = 'bb22cd7403595688fd81560a87b2f36a', salt = '8XhuZdIsRB8ge3IPY2ykKt', algorithm ='', stretch = WHERE uid = 3"
["ignore_errors"]=>
int(0)
["result"]=>
bool(false)
}
Since it's barking about syntax, I have Server version: 5.1.71
Password resets bomb as well.
Thanks for the help so far!
Laugh
It is missing the algorithm and the stretch (which is what produces this error).
Maybe someone else can take a look or you will have to wait until I get back.
Does your site actually run now if you go to the homepage?
Tom
One of the Geeklog Core Developers.
Habitual
Maybe someone else can take a look or you will have to wait until I get back.
Does your site actually run now if you go to the homepage?
Tom
Tom, I can wait and yes it runs, if I don't login. So I'm good with that for now.
Thanks.
Laugh
If you can't login you should be able to update your admin user record with the default Admin user record that is found in the Geeklog 2.0.0 MySQL file. Just replace everything in the user record except the id and you should be able to then login with the default password.
Tom
One of the Geeklog Core Developers.
Habitual
Do you mean it error's out when you log in or you just can't login?
If you can't login you should be able to update your admin user record with the default Admin user record that is found in the Geeklog 2.0.0 MySQL file. Just replace everything in the user record except the id and you should be able to then login with the default password.
Tom
Either trying to login, or a password reset throws an error.
It looks like this statement from line 828 in .../geeklog-2.0.0/sql/mysql_tableanddata.php:
which seems consistent with
which I've tried and it failed to allow admin to login with the default password as well.
Call Stack
# Function File Line
1 trigger_error /var/www/system/databases/mysqli.class.php 279
2 dbQuery /var/www/system/lib-database.php 213
3 DB_query /var/www/system/lib-security.php 1298
4 SEC_updateUserPassword /var/www/system/lib-security.php 1244
5 SEC_encryptUserPassword /var/www/system/lib-security.php 746
6 SEC_authenticate /var/www/html/users.php 818
array(3) {
["sql"]=>
string(137) "UPDATE gl_users SET passwd = 'e1ba810f778535eab5cbe009b8c22fc2', salt = 'lgl9T0moeovWtNZ1qMqI6Y', algorithm ='', stretch = WHERE uid = 2"
["ignore_errors"]=>
int(0)
["result"]=>
bool(false)
}
Seems it dislikes /var/www/system/databases/mysqli.class.php line 279 for "some reason".
Thank you for your time.
remy
The error in the sql is due to the field stretch not having a value:
Maybe the manual sql will help:
Refer to the .../geeklog-2.0.0/sql/mysql_tableanddata.php for their initial values.
Maybe even the salt field should be empty (?) on the reset; it is not set on upgrade.
Habitual
That or a variation of it didn't work
or
It just kicks me to the "did you forget your password" screen after admin/password is entered (same as any valid user really)
What gets me is this:
I ran this from line 828 of geeklog-2.0.0/sql/mysql_tableanddata.php:
same result Try Logging in Again
You may have mistyped your login credentials.
I think I'm going to wait for Tom to "get back" as he offered to have a look at my db.
Thanks for all the help though, I appreciate the effort!
DemeX
i'm having the same problem upgrading from 1.8 to 2.1, the upgrade script it's giving a blank page and the database is not being updated. I tried the upgrade, first migrating, after upgrading in my hosting and in a virtual box, but the result is the same, i can migrate but not upgrade. I tried fix the database manually, but i have not enough SQL skills... It's an old site since Geklog 1.3 (10 years more or less). I spent too many hours with this problem, the erros are the same explained above.
I think I'll just stay at 1.8.1 on the new site.
It's been reliable. And if it's not broke, why should I fix it?
Because i think 1.8 will not receive any more security updates, and the same with the plugins working in 1.8. In some date can be security vulnerabilities in the wild affecting 1.8 or some outdated plugins. For me, security is one of the main reasons to use Geeklog, if i do not feel secure i will migrate to another CMS. In ten years i have only one security problem with the MediaGallery plugin. Geeklog is rock solid and performs nice, but if i can not keep it updated i will switch.
remy
Found in readme's of the 1.8.2sr1 upgrade:
Then edit public_html/siteconfig.php and change the version number to 1.8.2sr1
like so:
define('VERSION', '1.8.2sr1');
I tend to think that resetting the version string is a solution.
Laugh
The other thing I would try is disabling any plugin (in the plugin manager) that is not installed with Geeklog itself.
Between Geeklog 1.8.x and 2.X.0 there was a number of changes that required certain plugins to be updated before you could proceed to upgrading Geeklog (unless you disabled the plugins or uninstalled them).
One of the Geeklog Core Developers.
Page navigation
- Normal Topic
- Sticky Topic
- Locked Topic
- New Post
- Sticky Topic W/ New Post
- Locked Topic W/ New Post
- View Anonymous Posts
- Able to post
- Filtered HTML Allowed
- Censored Content