Hey guys,
DbPlumber has a new feature to copy data across different SilverStripe installations which are using different different adapters. Unfortunately this works for all combinations of adapters in both directions but not to SQL Server. This is due to autogenerate constraines in the identity columns of some tables. SQL Server refuses to set identity values. You could use it anyway but you'd need to tweak the db dump before using it:
1. make sure both installs have the same code and you don't have obsolete columns in your MSSQL db, run dev/build in both
2. run the following query to determin identity columns in your MSSQL DbPlumber to determin autogenerate constained columns
SELECT
TABLE_NAME + '.' + COLUMN_NAME,
TABLE_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'dbo' AND
COLUMNPROPERTY(object_id(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1
3. export your MySQL data in MySQL dialect
4. open the uncompressed file in the editor of your choice
5. remove MySQL specific SET sql_mode = 'ANSI'; from the beginning of the dump
INFO: the dump contains a block of SQL commands for every table consisting of a DELETE per table and a INSERT per record
6. add a
SET IDENTITY_INSERT "insert_table_name_here" ON;
before the block for every constrained table
7. add a
SET IDENTITY_INSERT "insert_table_name_here" OFF;
after the block for every constrained table
8. your dump is now prepared for import, use DbPlumber to import dump
BACK UP ALL DATA BEFOREHAND / USE AT YOUR OWN RISK !
Good luck
Andy