I have a DB in a Rails app I’m developing that had a product_type field defined as varchar(255) (in SQLite Manager) that ended up being a foreign key. I changed the name to product_type_id and the type to integer using a migration in Rails to use the existing id field in the other product_type file. When it was complete, SQLite Manager in Firefox shows the type as integer(255) rather than just integer.
What is an integer(255)? An answer to another question here said the (255) was a display width. Is that correct? There is no data in the database at present. Should I delete and recreate the field to get an integer, otherwise the data types on the two fields won’t match.
The
integer(255)came about because a string field [varchar(255)] was converted to an integer and the DB maintained the field size so it might possibly hold the old data when converted during the change. Apparently, most DBs don’t support integers that large. Some will ignore the size specification but others will error. Regardless, the result was not what I’d intended.I found that the way to remove the limit was to perform a migration in Rails and set the limit to nil.