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
common leaving |
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).