= Zarządzamy strukturą bazy danych = Do zarządzania zmianami w bazie danych korzystamy z projektu https://github.com/schambers/fluentmigrator/. Niezbędne operacje jak np dodanie, usunięcie, zmiana nazwy tabeli lub kolumny umieszczamy w projekcie adMoto.Migrate w katalogu Migrations nazwa pliku oraz klasy powinna składać się z _YYYYMMDDHHmm_Name gdzie: * YYYY - rok * MM - miesiąc * DD - dzień * HH - godzina * mm - miesiąc * name - dowolna nazwa klasy Klasa powinna być opatrzona atrybutem [Migration(YYYYMMDDHHmm)] jest to kolejny numer migracji do wykonania, oraz dziedziczyć po klasie Migration z pakietu "FluentMigrator". W klasie należy przeciążyć dwie metody Up oraz Down, Up wykorzystywana do wprowadzenia zmian do bazy danych, Down powinna wycofać zmiany wprowadzone w metodzie Up, przykład: {{{ using FluentMigrator; namespace adMoto.Migrate { [Migration(201107071547)] public class _201107071541_Test : Migration { // dodanie testowej kolumny do tabeli Customers public override void Up() { Create.Column("TestColumn").OnTable("Customers") .AsString(int.MaxValue) .Nullable(); } // usunięcie testowej kolumny z tabeli Customers public override void Down() { Delete.Column("TestColumn").FromTable("Customers"); } } } }}} Uruchomienie migracji odbywa się automatycznie przy release projektu na domenę testową nh.test.truck.pl, na sandbox jeszcze nie. Wykonanie rollbacka polega na wywołaniu polecenia rake.net.exe db:rollback - cofa zmiany do ostatnio używanej wersji bazy (należy się upewnić czy rake.net posiada odpowiednią konfiguracje - test,sandbox, production) Wykonanie polecenia rake.net.exe db:rollback version - cofa zmiany do konkretnej wersji bazy danych. Używane wersje bazy danych są przechowywane w katalogu C:\temp\DataBaseVersionInfo\ (konfiguracja lokalna i testowa) Więcej informacji znajdziecie na wiki projektu: https://github.com/schambers/fluentmigrator/wiki oraz w artykułach społeczności https://github.com/schambers/fluentmigrator/wiki/Community-articles Acha, niestety nadal należy utrzymywać mapowanie klasy na pliki xml dla NHibernate :)