title: How can I move one schema into another with different fields?
body: <p>I created an application to replace a legacy one that we had for a while, and I need to move the old database records into the new system, but the schemas are not the same. I'm wondering if there is any way to move the old schema into the new, ignoring the fields that don't exist in the new table, and moving fields that have changed to their updated version.</p>
  
  <p>My old schema is Microsoft SQL Server and has the following fields:</p>
  
  <pre><code>[req_id] [int] IDENTITY(1,1) NOT NULL,
  [req_user_id] [nvarchar](50) NOT NULL,
  [req_subject] [nvarchar](200) NOT NULL,
  [req_details] [nvarchar](4000) NOT NULL,
  [req_request_date] [date] NOT NULL,
  [req_year] [smallint] NOT NULL,
  [req_expect_date] [date] NOT NULL,
  [leader] [nvarchar](10) NULL,
  [member1] [nvarchar](10) NULL,
  [member2] [nvarchar](10) NULL,
  [member3] [nvarchar](10) NULL,
  [member4] [nvarchar](10) NULL,
  [member5] [nvarchar](10) NULL,
  [member6] [nvarchar](10) NULL,
  [status_code] [nvarchar](10) NULL,
  [hours_used] [int] NULL,
  [completed_date] [date] NULL,
  [category_code] [nvarchar](10) NULL,
  [staff_comments] [nvarchar](2000) NULL,
  [response_Email] [bit] NOT NULL,
  [response_Phone] [bit] NOT NULL,
  [response_Fax] [bit] NOT NULL,
  [response_online_upload] [bit] NOT NULL,
  [response_post_mail] [bit] NOT NULL,
  [response_file] [bit] NOT NULL,
  [response_pickup] [bit] NOT NULL,
  </code></pre>
  
  <p>My new schema is MySQL and looks like this:</p>
  
  <pre><code>  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `userid` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    `subject` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
    `details` text COLLATE utf8_unicode_ci NOT NULL,
    `eta` date NOT NULL,
    `leader` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `member1` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `member2` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `member3` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `member4` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `member5` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `member6` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `status` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
    `time_spent` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `date_completed` date DEFAULT NULL,
    `category` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `comments` text COLLATE utf8_unicode_ci,
    `response_method` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  </code></pre>
  
  <p>Is there any way to do this and salvage our old records in the new system?</p>