Database upgrade error - Can no longer log in
When upgrading form 0.8.3 to 0.8.5, I could no longer log in with my username. I had to log in with my email address.
When I did, I was greeted with a 500 error.
Looking into the logs, several things happened:
- It did not appear that the
sudo pip3 install -r /opt/osp/setup/requirements.txt
was run.
ModuleNotFoundError: No module named 'bleach'
- Once I manually ran the following upgrade items:
sudo pip3 install -r /opt/osp/setup/requirements.txt
python3 manage.py db init
sudo python3 manage.py db migrate
sudo python3 manage.py db upgrade
- I was met with this error:
iamdoubz@computer:/opt/osp$ sudo python3 manage.py db upgrade
{'res': 0, 'text': 'The node ejabberd@localhost is started. Status: startedejabberd 20.12 is running in that node'}
{'level': 'info', 'message': 'Checking Flask-Migrate DB Version'}
{'level': 'info', 'message': 'Setting up Default Roles'}
{'level': 'info', 'message': 'Setting Default Topics'}
{'level': 'info', 'message': 'Querying Default System Settings'}
{'level': 'info', 'message': 'Performing DB Checks and Fixes'}
{'level': 'info', 'message': 'Performing DB Sanity Check'}
{'level': 'info', 'message': 'Checking for Null Default Roles'}
{'level': 'info', 'message': 'Performing Additional DB Sanity Checks'}
DB Load Fail due to Upgrade or Issues
{'level': 'info', 'message': 'Checking for 0.7.x Clips'}
{'level': 'info', 'message': 'Rebuilding OSP Edge Conf File'}
{'level': 'info', 'message': "Skipping Rebuilding '/opt/osp/conf/osp-edge.conf' per System Setting"}
{'level': 'info', 'message': 'Initializing OAuth Info'}
{'level': 'info', 'message': 'Initializing Flask-Mail'}
{'level': 'info', 'message': 'Performing XMPP Sanity Checks'}
{'level': 'info', 'message': 'Verifying existing ejabberd Rooms'}
XMPP Sanity Check Failed - (pymysql.err.InternalError) (1054, "Unknown column 'user.tf_primary_method' in 'field list'")
[SQL: SELECT user.id AS user_id, user.uuid AS user_uuid, user.username AS user_username, user.email AS user_email, user.fs_uniquifier AS user_fs_uniquifier, user.tf_primary_method AS user_tf_primary_method, user.tf_totp_secret AS user_tf_totp_secret, user.password AS user_password, user.biography AS user_biography, user.active AS user_active, user.confirmed_at AS user_confirmed_at, user.last_login_at AS user_last_login_at, user.current_login_at AS user_current_login_at, user.last_login_ip AS user_last_login_ip, user.current_login_ip AS user_current_login_ip, user.login_count AS user_login_count, user.`pictureLocation` AS `user_pictureLocation`, user.`authType` AS `user_authType`, user.`oAuthID` AS `user_oAuthID`, user.`oAuthProvider` AS `user_oAuthProvider`, user.`xmppToken` AS `user_xmppToken`, `OAuth2Token_1`.id AS `OAuth2Token_1_id`, `OAuth2Token_1`.name AS `OAuth2Token_1_name`, `OAuth2Token_1`.token_type AS `OAuth2Token_1_token_type`, `OAuth2Token_1`.access_token AS `OAuth2Token_1_access_token`, `OAuth2Token_1`.refresh_token AS `OAuth2Token_1_refresh_token`, `OAuth2Token_1`.expires_at AS `OAuth2Token_1_expires_at`, `OAuth2Token_1`.user AS `OAuth2Token_1_user`
FROM user LEFT OUTER JOIN `OAuth2Token` AS `OAuth2Token_1` ON user.id = `OAuth2Token_1`.user
WHERE user.id = %(param_1)s]
[parameters: {'param_1': 1}]
(Background on this error at: http://sqlalche.me/e/2j85)
{'level': 'info', 'message': 'Importing Topic Data into Global Cache'}
{'level': 'info', 'message': 'Initializing SocketIO Handlers'}
{'level': 'info', 'message': 'Initializing Flask Blueprints'}
{'level': 'info', 'message': 'Initializing Template Filters'}
{'level': 'info', 'message': 'Setting Jinja2 Global Env Functions'}
{'level': 'info', 'message': 'Setting Flask Context Processors'}
{'level': 'info', 'message': 'Initializing Flask Signal Handlers'}
{'level': 'info', 'message': 'Finalizing App Initialization'}
{'level': 'info', 'message': 'OSP Core Node Started Successfully0.8.5'}
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> 57ea6bfc45a2, empty message
I then restarted all my services and started working again. Just curious as to why the upgrade failed miserably and/or why I can no longer log in using my username.