Good evening!

Recently,
the topic of version change in the database structure was
raised here. Among the ready-made solutions for database migration (for .NET projects), the
ECM7.Migrator project was mentioned there, of which I am one of the authors.
Yesterday we finally released version 2.0. You can
get the new version on the
project page in google code and in
the nuget package gallery .
')
WTF
ECM7.Migrator is a fork of the
Migrator.NET project, which appeared 2 years ago and now lives an independent life.
The main idea - database changes are written in the code using a special framework. All changes are in special classes - migrations. Each migration has a number and can be performed both forward (applying changes) and backward (rolling back changes). Thus, from any version of the database you can get any other.
The migrator also contains tools for performing migrations: a console application and tasks for NAnt / MSBuild.
Read more about the migrator
here .
Version 2.0
By version 2.0, we walked more than six months. During this time a lot of work has been done. Here is a list of major changes:
- completely rewritten core;
- the ability to maintain parallel accounting of versions of several independent system components in one database;
- the ability to configure the migrator using the application configuration file;
- New log4net based logging system
- escaping reserved words in titles;
- MS SqlServer CE 4 support; SQLServer CE <4 versions missing;
- New function FormatSql in the ITransformationProvider interface for writing database independent SQL queries;
- The Select and SelectScalar methods have been removed from the ITransformationProvider interface - use the ExecuteQuery and ExecuteScalar methods;
- opening a connection in the transformation provider now occurs on demand;
- removed the ability to perform migrations from multiple assemblies;
- removed some mysterious classes left over from Migrator.NET that do not contain fully implemented functionality;
- methods AfterUp, AfterDown, InitializeOnce removed from the migration class;
- Additional checks on the correctness of the migration numbers in the assembly.
Ps.
When a year and a half ago I wrote a topic about the release of the first version of the migrator, they zaminusovali him (I did not fully understand why). Perhaps now will be the same, but it does not matter.
We use the migrator in our projects on the main job and we noticed that the new version is much better than the previous ones. Most of my friends who have tried the migrator from my source already reuse it themselves in other projects and claim that this is the only way to work with the database during development that they like.
We already got what we wanted. If the topic is again zaminusyut - nothing will change. If, thanks to this topic, someone discovers a new way of working with the database, we will be very happy. I will also be happy to answer any of your questions regarding the migrator.
Thanks for attention!