123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- = Migrator DotNet
- Database Migrations implemented in .NET.
- Supports rolling up and rolling back of migrations.
- A way to integrate database change management into your regular development and automation processes.
- The migrations themselves are implemented in code and can be mostly done in a database independent way.
- Licensed under MPL 1.1 : http://www.mozilla.org/MPL/
- == Supported Database
- * MySQL (5.0, 5.1)
- * PostgreSQL
- * SQLite (tested on Mono)
- * SQL Server (2000, 2005)
- * SQL Server CE (3.5)
- == Untested Databases but in there
- * Oracle
- == Supported Modes
- * MSBuild Task
- * NAnt Task
- * Console Application
- = Development
- == Compiling
- To build from source:
- nant build
- == Testing
- To run tests:
- nant test
- You should have a database installed and setup:
- * MySql
- * SQL Server
- * Oracle
- * PostgreSQL
- * or you can use SQLite with no setup
- You can Test on each engine or change those by changing the 'exclude' properties in a nant build
- file called 'local.properties'. To change the database connection strings see config\app.config. You
- can make your own local version called 'local.config' to override these
- == SQL Server CE
- To use SQL Server CE, you will need the proper tools installed. The current DLL that we are testing
- against is the 3.5 version.
- As of this writing you can download the installer for the SQL CE Runtime at:
- http://www.microsoft.com/downloads/details.aspx?&FamilyID=7849b34f-67ab-481f-a5a5-4990597b0297&DisplayLang=en
- We have not confirmed if this will build on Mono yet. But it almost definitely won't run because SQL CE uses PInvoke
- internally.
- = Usage
- 1. Add bin/Migrator.Framework.dll to you project references
- - All of the other DLLs are only needed for actually running the migrations.
- 2. Create a class for your migration like:
- using Migrator.Framework;
- [Migration(1)]
- public class MyMigration : Migration
- {
- public override void Up()
- {
- // Create stuff
- }
- public override void Down()
- {
- // Remove the same stuff
- }
- }
- 3. Compile your migrations and run the console (Migrator.Console.exe) or use the migrator
- NAnt or MSBuild tasks:
- NAnt:
- <loadtasks assembly=".../Migrator.NAnt.dll" />
- <target name="migrate" description="Migrate the database" depends="build">
- <property name="version" value="-1" overwrite="false" />
- <migrate
- provider="MySql|PostgreSQL|SqlServer"
- connectionstring="Database=MyDB;Data Source=localhost;User Id=;Password=;"
- migrations="bin/MyProject.dll"
- to="${version}" />
- </target>
- MSBuild:
- <PropertyGroup>
- <MigratorTasksPath>$(MSBuildProjectDirectory)\migrator</MigratorTasksPath>
- </PropertyGroup>
- <Import Project="$(MigratorTasksPath)\Migrator.Targets" />
- <Target name="Migrate" DependsOnTargets="Build">
- <Migrate Provider="SqlServer"
- Connectionstring="Database=MyDB;Data Source=localhost;User Id=;Password=;"
- Migrations="bin/MyProject.dll"/>
- </Target>
|