How Do I Migrate Field History?

You've probably noticed that Salesforce doesn't provide a straightforward way of migrating Field History.  The two (okayish) workarounds I know:

  1. create a custom object to store field history for migrated records.
  2. create a field called "Modified Date (Migrated)" on the audited object and track history on it.  Write the changes to the appropriate records, while also writing the dates those changes occurred to the "Modified Date (Migrated)" field.  It's not as good as seeing the modified date appear properly in the "Date" column, but hey, it IS showing up.  In the example below, we're showing that we changed Foote, Cone, & Belding Inc. to Foote, Cone, & Belding Corp. on 3/26/2008: