As far as I know, none of the TDataset descendants that ship with Lazarus allow a change to Field Definitions or Indexes after the table is Created and records added.
The only solution is the one that you have described, where a new table is defined and the old table is copied across.