Blog de Philip Doxakis    LinkedIn    GitHub    RSS

DOS Script: DB Migration

Faciliter l'utilisation de fluentmigrator

fluentmigrator?

Il s'agit d'une librairie pour les développeurs en .NET afin de faciliter la migration du schéma de la base de données. Je vous invite à aller voir sur github: schambers/fluentmigrator

Aujourd'hui, je vous présente le template de mon script DOS que j'utilise pour migrer les bases de données sur lesquelles je travaille. Je vous invite à vous inspirer de celui-ci pour créer le vôtre. Faites une copie du script et enregistrez avec l'extension .cmd

Assurez-vous de définir les variables au début du script et d'adapter le chemin de la variable migrateexepath en fonction de la version des outils de fluentmigrator que vous avez installé.

@ECHO OFF

REM ======================================================================
REM Initialize the environnement.
REM More info at: https://github.com/schambers/fluentmigrator/wiki/Command-Line-Runner-Options

SET projectName=
SET sourcePath=
SET dll=
SET migrateexepath=%sourcePath%\packages\FluentMigrator.X.X.X.0\tools
SET productionConnection=
SET testConnection=
SET localConnection=
SET databaseType=

REM The size of DOS window.
MODE 150

REM ======================================================================

REM Move to executable folder.
CD "%migrateexepath%"

REM Display general information about this script.
TITLE Database migration of %projectName%
ECHO Database migration of %projectName%
ECHO --------------------------------------------------------------
ECHO.

REM Ask user what to do and where to do the job.
SET /p task=Enter 'up' to migrate up, enter 'down' to migrate down: 
IF "%task%"=="up" GOTO UP
IF "%task%"=="down" GOTO DOWN
ECHO This is not a valid task.
GOTO END

:UP
SET task=migrate:up
SET taskDescription=Run all migration
GOTO CHOOSEENV

:DOWN
SET task=rollback
SET taskDescription=Rollback one migration
GOTO CHOOSEENV

:CHOOSEENV
SET /p env=Enter 'local' for local env, enter 'test' for test env or enter 'prod' to migrate production database: 
REM Choose the environnement.
IF "%env%"=="local" GOTO LOCAL
IF "%env%"=="prod" GOTO PROD
IF "%env%"=="test" GOTO TEST
ECHO This is not a valid env.
GOTO END

:PROD
SET env=Production
SET conn=%productionConnection%
GOTO RUN

:TEST
SET env=Test
SET conn=%testConnection%
GOTO RUN

:LOCAL
SET env=Local
SET conn=%localConnection%
GOTO RUN

:RUN
ECHO.
ECHO Task : %taskDescription%
ECHO Env  : %env%
ECHO.
ECHO Press enter to run the task
PAUSE
Migrate.exe /connection "%conn%" /db %databaseType% /target "%dll%" /task %task%

:END
ECHO ----------------
ECHO End of migration
PAUSE