Migracje w Entity Framework

Posted on

migracje

W poprzednim poście stworzyliśmy mechanizm logowania. Teraz chcemy stworzyć zarządzanie użytkownikami. W tym celu dodajemy pole Role w klasie Registration. Niestety kompilator po tej operacji nas nie przepuszcza. Dzieje się tak, gdyż w bazie danych nie mamy takiej kolumny. Zmienił się nam w podejściu Code First model danych, a nie zmieniła się baza danych, teraz są niekompatybilne. Musimy więc dokonać tak zwanej migracji bazy danych.

W tym celu przeprowadzamy szereg czynności. Pierwszą jest wysłanie komunikatu do konsoli Package Manager

Enable-Migrations

Jeśli pojawia nam się komunikat, że wszystko jest OK, że uaktywniono migracje Code First, przechodzimy dalej, jeśli nie, szukamy rozwiązania w internecie, musimy zakończyć ten etap ( na każdym z opisywanych etapów mogą zdarzyć się błędy – mi się zdarzały i musimy je rozwiązać zanim przejdziemy do kolejnego etapu migracji)

Kolejnym krokiem jest utworzenie migracji. Możemy jej nadać nazwę. Komenda tworząca migrację brzmi Add-Migration

My wywołujemy ją z parametrem name, gdyż nadajemy nazwę migracji

Add-Migration RolePoleAdded

Dostajemy taki kod migracji w odpowiedzi (w moim przypadku)


namespace RTV.Migrations
{
 using System;
 using System.Data.Entity.Migrations;
 
 public partial class RolePoleAdded : DbMigration
 {
 public override void Up()
 {
 AddColumn("dbo.Registrations", "Role", c => c.String());
 }
 
 public override void Down()
 {
 DropColumn("dbo.Registrations", "Role");
 }
 }
}


Jak widzimy w tym kodzie, utworzone mamy pole Role czyli rola użytkownika w systemie.

Ostatnim krokiem jest uruchomienie migracji komendą

Update-Database

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *