Was your OpenID provider Google or Yahoo by any chance? Did you
change the hostname or IP address your Gerrit server was accessed
through? Both of those providers generate different OpenID tokens for
each hostname or IP address, to prevent sites from comparing their
databases and tracking you on the web.
If you can't use the old hostname or IP to regain access to your old
account, you are going to need to edit the database by hand. Find
your old account in the accounts table, get its account_id. Find your
new account's account_id from the same table (or from the Settings
page in the web UI). Then issue an update to move the OpenID tokens
from the new account over to the old account:
UPDATE account_external_ids
SET account_id = OLD_ID
WHERE account_id = NEW_ID;
And restart your server. You can probably use `java -jar
bin/gerrit.war gsql -d .` to open a prompt to your database. If its
an H2 database, you'll need to stop the server to do it.
I tried modifying database by hand but it is giving only following options
General
\q quit
Query Buffer
\g execute the query buffer
\p display the current buffer
\r clear the query buffer
Informational
\d list all tables
\d NAME describe table
How do I see values once I list all the tables? Sorry to ask dumb question.
Here are the steps I did...
gerrit> select * FROM ACCOUNTS;
gerrit > UPDATE ACCOUNT_EXTERNAL_IDS SET ACCOUNT_ID = OLD_ID WHERE ACCOUNT_ID = NEW_ID
Thx,
Parthiv.
PARTHIV.