Use bigint for primary keys on every table

Problem to solve

We will run out of ID numbers on an important tracking table in the database. This is because the column in database is configured as an integer rather than a big integer.

Further details

Basecamp stuck in read-only mode for hours due to a failure to use bigint for primary keys on every table is embarrassing. It's been the default in Rails since 5.1

Proposal

Upgrade rails to version 5.2.1 and above

What does success look like, and how can we measure that?

The integer runs out of numbers at 2147483647. The big integer can grow until 9223372036854775807.

Links / references

https://twitter.com/dhh/status/1060565296048562177

https://m.signalvnoise.com/update-on-basecamp-3-being-stuck-in-read-only-as-of-nov-8-9-22am-cst-c41df1a58352

Assignee Loading
Time tracking Loading