As long as the traveling user will be adding, updating, and deleting records and can guarantee that no one else is touching in the master, there is something you can try.
What you want to do is setup MySQL Circular Replication (Master/Master) between Master and LapTop. Once you have this esatblished and the time has come for the traveling user (TVU) to leave for the week, here is what to do:
Step 1 : Run STOP SLAVE; on the Master
Step 2 : Run STOP SLAVE; on the LapTop
Step 3 : TVU inserts, updates, and deletes on the LapTop
Step 4 : Make sure TVU does not delete or update data that the Master will have worked on during the week.
Step 5 : When the TVU returns, run START SLAVE; on the Master to reconnect the Master to the LapTop. All inserts, updates, and deletes that occurred on the LapTop during the week will transmit over to the Master. Run SHOW SLAVE STATUS\G every couple of minutes on the Master and look for Seconds_Behind_Master going to 0. When it does, the data from the LapTop will be sync'd over to the Master.
Step 6 : (OPTIONAL) Run START SLAVE; on the LapTop to bring all the inserts, updates, and deletes the Master did during the week. Run SHOW SLAVE STATUS\G every couple of minutes on the LapTop and look for Seconds_Behind_Master going to 0. When it does, the data from the Master will be sync'd over to the LapTop.
The only real danger is if you delete or update data on the LapTop that still needs to be on the Master. If you forget that, step 5 will make that data change or disappear unintentionally. As long as you work with a new set of data on the LapTop only, there should be no problem.
You should test this between a DevServer and a LapTop you are using for Development only.
UPDATE 2011-07-24 21:42 EDT
Here is another thing you can try:
Step 1 : Setup mysql on the LapTop with no initial data on the laptop and no binary logging
Step 2 : mysqldump the data out of the Master and into the LapTop
Step 3 : Add this to my.ini on the LapTop
[mysqld]
log-bin=mysql-bin
Step 4 : Activate binary logging without a mysql restart on the LapTop
SET GLOBAL SQL_LOG_BIN = 0;
or just restart mysql
Step 5 : Perform inserts, updates, and deletes on the LapTop (Make sure they do not conflict with needed data on the Master)
Step 6 : run this
mysqlbinlog mysql-bin.0* > ThisWeeksChanges.sql
Step 7 : Run this on the Master
mysql> source ThisWeeksChanges.sql
Best Answer
You could setup a script to read the binary log, convert it to SQL (with the utility mysqlbinlog) and change the schema on-the-fly before applying the changes. You could also setup triggers on every table to
INSERT
/UPDATE
/DELETE
every row on the copy schema. But that is a lot of work to do it right.Running 2 instances of MySQL on the same machine is very easy, and may be closer the the production deployment. Tools like MySQL sandbox makes running "n" different instances of MySQL even easier, taking just a command to setup an instance or a complex replication topology! You can even simulate replication lag with MASTER_DELAY or pt-slave-delay to see how your application behaves when the state of both schemas is not the same.