New GitLab missing migration


Hi fellow GitLab folks,

I set up a small, internal GitLab EE (running in CE mode, on Ubuntu 18.04 with the Omnibus install) about a six weeks ago, and it is currently 11.4.5. I went to create a personal access token today, but got a 500 error. I checked the logs, and found the error:

UndefinedColumn: ERROR: column personal_access_tokens.token_digest does not exist

So, I went into GitLab PSQL and sure enough, that column does not exist. I found through some Googling that this column was added at some time in the 11.4 release. I searched through the GitLab files and found the creation is in a Ruby database migration, 20180910153412_add_token_digest_to_personal_access_tokens.rb. There is also a migration for adding an index.

While I know PostgreSQL inside out and could certainly alter the table myself, I was wondering a few things things:

  1. How can I run a single migration (or several migrations) manually? These two specifically.

  2. I recall hitting a 500 error at another time as well. Maybe there were other migrations missed. How can I force a schema validation of the whole database?

I am happy to say in about three years of running GitLab and Omnibus (even on old Debian 7 servers still in operation to this day) this is literally my first problem.