<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>Hello,<br><br></div>We've got a long chain of dependencies for upgrading Gerrit. As I understand, we need to do the following:<br><br></div>* Upgrade the operating system to CentOS 7.<br></div>* Move the database out of H2 to MySQL or PostgreSQL.<br></div>* Upgrade gerrit itself.<br><br></div>The hairiest part of this process, I feel is the database. As far as I understand, we use H2 at the moment and it's a file along with everything else. From what I read, it's the sqlite3 of the java world.<br><br></div>If we can move the database into PostgreSQL, we can change on risky part of this process. I've looked at how to do this on a gerrit install on a clean slate server on digital ocean. So, I know what to do.<br><br></div>What needs to happen:<br></div>* We schedule a brief downtime window to copy the db files. We copy the db files out of the production instance to a test instance (perhaps it's time we had a staging site?) to export the databases out and migrate the database to postgres. This will give us a chance to test and catch any special bugs we may come across.<br></div>* We test the instance thoroughly, especially for actions we do frequently on our current instance - push/pull code, a few reviews, and github logins. I don't know if a CI trigger is a good thing to do, but that's where I'll need input.<br></div>* Once we know how much time it will take, we schedule a downtime window and start the upgrade on production. A lot of the process seems to be removing the data into csv files and loading it back into postgresql. It's not fun, for sure :)<br></div>* Now upgrade the test instance to latest gerrit and run another round of testing.<br></div>* Upgrade production to latest gerrit.<br></div><br></div>The OS needs to upgrade and I know it's critical, but it can happen independent of the db migration and gerrit upgrade itself. As long as it doesn't happen in the same downtime window. If this sounds good, I'd like to schedule a short downtime (30 mins or
so) tomorrow or on Monday to get a copy of the data. If we have backups somewhere
that's something as old as 30 days, that works too.<br><br>I'd love to hear thoughts on how crazy this sounds or if there's something I've missed.<br><br></div><div>nigelb<br></div></div>