Data migration is an extremely common operation in software design and development. Whenever a new system is introduced or a legacy system is redesigned, existing data has to be moved from the legacy system to the new target system. Learn more at Data migration strategies and design patterns on my programming interviews blog.