How often did I need to copy whole virtual machine because I needed to continue work on another location? A way too often. And moments when I wait for 20-30GB to copy, sometimes seem like eternity.
Well, I spent couple minutes last night to prevent that 🙂
Here is a batch script which copies folder with my work from hdd and takes backup of database. Even more, it restores everything back when I arrive at another location 🙂
So, save this script as common.bat:
@echo off set server=HOSTNAME\INSTANCE set dbName=DATABASE set projFolder="C:\Users\gorano\Documents\visual studio 2010\Projects" set backupFolder=%CD% if "%1"=="leaving" GOTO backup if "%1"=="arriving" GOTO restore echo Invalid first argument, must be "leaving" or "arriving" GOTO end :backup echo backup database %dbName% @echo on sqlcmd -E -S %server% -Q "BACKUP DATABASE [%dbName%] TO DISK = N'%backupFolder%\%dbName%.bak' WITH NOFORMAT, INIT, NAME = N'%dbName%-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10" xcopy %projfolder% %backupFolder%\Projects /E /I /Y /Q GOTO end :restore if "%2"=="DeleteOld" GOTO deleteold :restoreNoDelete echo restore database %dbName% sqlcmd -E -S %server% -Q "RESTORE DATABASE [%dbName%] FROM DISK = N'%backupFolder%\%dbName%.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10" xcopy %projfolder% %projfolder%.backup /E /I /Y /Q xcopy %backupFolder%\Projects %projfolder% /E /I /Y /Q GOTO end :deleteold @echo Press any key to delete database %dbName% on sql server %server% pause sqlcmd -E -S %server% -Q "ALTER DATABASE [%dbName%] SET SINGLE_USER WITH ROLLBACK IMMEDIATE" sqlcmd -E -S %server% -Q "DROP REMOVETHISWORD DATABASE [%dbName%]" GOTO restoreNoDelete :end pause
To run this easily, make “i’mleaving.bat” with
and “i arrived.bat” with
common arriving DeleteOld
All you need to change is to set your server\instance, database name, folder with projects, and to delete “REMOVETHISWORD” under :deleteold, as words DROP and DATABASE does not stand well together (I don’t want to hack wordpress script injection protection to post this) 🙂
In combination with DropBox, this is great thing. You can also add 7z line to compress/decompress these files so dropbox sharing is more meaningfull (if you have large database).