Как запустить миграцию в asp net mvc 3

В инете решения своей проблемы не нашел.

У меня есть проект asp net mvc 3. У меня есть база данных, у меня есть класс похожих сущностей из базы данных:

public class Product : Entity
{
    [Required(ErrorMessage = "Error!")]
    public virtual string Name { get; set; }

    [Required(ErrorMessage = "Error!")]
    public virtual int Age { get; set; }
}

В моем проекте я хочу использовать миграцию. В проекте я добавил библиотеку FluentMigrator, создал следующий класс (это тестовый класс с тестовой таблицей):

[Migration(1)]
public class Step1 : Migration
{
    public override void Up()
    {
        #region Create Tables
        Create.Table("Products").InSchema("dbo")
            .WithColumn("ProductId").AsInt32().Identity().NotNullable().PrimaryKey()
            .WithColumn("Name").AsString(255).Nullable()
            .WithColumn("Age").AsInt32().Nullable();

        #endregion
        this.Execute.Script("test.sql");
    }

    public override void Down()
    {
        #region Delete Tables
        Delete.Table("Products").InSchema("dbo");
        #endregion
    }

}

также в моем решении я создал файл - «test.sql». Этот файл содержит следующий код:

INSERT INTO [Products] ([Name],[Age])
 VALUES ('test12', 1111)

Подскажите, как мне запустить миграцию в моем проекте, чтобы код из файла "test.sql" добавился в таблицу "Товары"? Извините за мой английский.


person netwer    schedule 23.10.2013    source источник
comment
msdn.microsoft.com/en-us/data/jj591621.aspx# создание   -  person SLaks    schedule 23.10.2013


Ответы (2)


Миграция определяет изменение, которое вы хотите внести в базу данных. Чтобы выполнить его, вы должны использовать один из бегунов для FluentMigrator. Их 3. Существует инструмент командной строки, который поставляется с пакетом Nuget и запускается из командной строки следующим образом:

.\packages\FluentMigrator.1.1.1.0\tools\migrate -conn "server=.\SQLEXPRESS;uid=test;pwd=test;database=FluentMigratorSample" --provider sqlserver2012 --assembly ".\bin\Debug\FluentMigratorSample.dll"

Есть 4 части к этому. .\packages\FluentMigrator.1.1.1.0\tools\migrate — это путь в пакете Nuget к файлу migrate.exe. Часть -conn — это строка подключения. Часть -provider указывает тип базы данных. Часть -assembly — это путь к сборке/dll, которая содержит миграции, которые необходимо выполнить. Дополнительные сведения см. в вики.

Если вы используете Nant или Msbuild. Для них тоже есть бегуны. Они имеют те же параметры, что и инструмент командной строки.

Есть еще один способ запустить FluentMigrator — непосредственно через код. Примером может служить что-то вроде этого класса (проект друга на Github). Затем этот класс вызывается при запуске в global.asax.cs, например это.

person Daniel Lee    schedule 23.10.2013
comment
Вам помог мой ответ? У вас все еще есть проблемы? - person Daniel Lee; 26.10.2013

Вы можете использовать инструмент командной строки от FluentMigrator:

Migrate.exe /connection "Data Source=db\db.sqlite;Version=3;" /db sqlite /target your.migrations.dll
person SLaks    schedule 23.10.2013