Can you really change a area this is a string for an integer without clearing the information already joined?
The present db structure for that table under consideration is:
create_table :people do |t| t.string :company_id
Is possible using migrations?
I am thinking maybe within the migration drop that old area, create a replacement that's an integer - but I am worried this can obvious all the data already joined.
Don't drop the column, it'll obvious the information.
You are able to however try
change_column :people, :company_id, :integer
and when all values in
company_id could be transformed into
integer, it ought to be fine.
If that's not the situation (ie not every string could be converted automatically), then it can be done in 2 steps: 1) produce a new column, then load the
company_id inside after a little conversion. 2) drop company_id then relabel the brand new column.
You ought to be careful with both techniques (much more for that second one) and you ought to most likely get it done first on the copy from the database, if you're able to.