vmangos/sql/make_migration.bat
2017-10-08 00:17:04 +03:00

62 lines
No EOL
2 KiB
Batchfile

@ECHO Off
SETLOCAL ENABLEDELAYEDEXPANSION
SET UTC=YYYYMMDDHHmmss
REM Get the UTC date-time string to use
CALL :GetFormattedCurrentUTCDate UTC
ECHO "Formatted UTC Date time : %UTC%"
SET "output=%UTC%_world.sql"
ECHO DROP PROCEDURE IF EXISTS add_migration;>> migrations/%output%
ECHO delimiter ??>> migrations/%output%
ECHO CREATE PROCEDURE `add_migration`()>> migrations/%output%
ECHO BEGIN>> migrations/%output%
ECHO DECLARE v INT DEFAULT 1;>> migrations/%output%
ECHO SET v = (SELECT COUNT(*) FROM `migrations` WHERE `id`='%UTC%');>> migrations/%output%
ECHO IF v=0 THEN>> migrations/%output%
ECHO INSERT INTO `migrations` VALUES ('%UTC%');>> migrations/%output%
ECHO -- Add your query below.>> migrations/%output%
ECHO.>> migrations/%output%
ECHO.>> migrations/%output%
ECHO.>> migrations/%output%
ECHO -- End of migration.>> migrations/%output%
ECHO END IF;>> migrations/%output%
ECHO END??>> migrations/%output%
ECHO delimiter ; >> migrations/%output%
ECHO CALL add_migration();>> migrations/%output%
ECHO DROP PROCEDURE IF EXISTS add_migration;>> migrations/%output%
REM End of the script Body
:EndOfScriptBody
ECHO "Exiting ..."
GOTO EndOfScript
REM Sub routine to get the current UTC date as formatted string YYYYMMDD_HHmmss
:GetFormattedCurrentUTCDate outString
FOR /F "tokens=* DELIMS=^=" %%a IN ('WMIC Path Win32_UTCTime Get Year^,Month^,Day^,Hour^,Minute^,Second /Value') DO (
SET LINE=%%a
FOR /f "tokens=1-2 delims=^=" %%i IN ("!LINE!") DO (
IF "%%i" == "Year" ( SET year=%%j)
IF "%%i" == "Month" ( SET month=%%j)
IF "%%i" == "Day" ( SET day=%%j)
IF "%%i" == "Hour" ( SET hour=%%j)
IF "%%i" == "Minute" ( SET minute=%%j)
IF "%%i" == "Second" ( SET second=%%j)
)
)
REM Prepend Zero to the number if less than Ten
IF %month% LSS 10 SET month=0%month%
IF %day% LSS 10 SET day=0%day%
IF %hour% LSS 10 SET hour=0%hour%
IF %minute% LSS 10 SET minute=0%minute%
IF %second% LSS 10 SET second=0%second%
SET %1=%year%%month%%day%%hour%%minute%%second%
REM END of :GetFormattedCurrentUTCDate
GOTO EndOfScript
:EndOfScript