Я унаследовал проект, который использует FluentMigrator для управления миграциями. Первоначально проект выполнял миграцию в процессе при запуске приложения, но I.T. , и теперь мы должны предоставить сценарии администратору баз данных для всех наших изменений в базе данных.FluentMigrator не работает миграции
В рамках этого перехода я перенес миграции в новый проект под названием «Миграции». Когда я пытаюсь выполнить миграции с помощью инструмента командной строки, это работает, но в базу данных не применяются миграции. Строка базы данных верна, потому что если таблица VersionInfo не существует, она создается.
Существует несколько миграций, но большинство из них очень просты. Вот пример первого:
Я использую SQL Server 2012 и FluentMigrator 1.2.1.
Вот командная строка в тексте для gunr2171:
.\Packages\FluentMigrator.1.2.1.0\tools\migrate.exe -c "Data Source=.;Integrated Security=True;Initial Catalog=portal_test" -db sqlserver2012 -a .\source\Migrations\bin\Debug\migrations.dll
И миграция образца:
using System;
using System.Collections.Generic;
using System.Linq;
using FluentMigrator;
namespace Migrations
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
[Migration(1)]
public class M001_CreateAccountTable : Migration
{
public override void Up()
{
Create.Table("Accounts")
.WithColumn("Id").AsInt32().NotNullable().Identity().Unique()
.WithColumn("PartnerCode").AsString().Nullable()
.WithColumn("AccountType").AsInt32().NotNullable()
.WithColumn("Code").AsString().NotNullable().Unique().PrimaryKey()
.WithColumn("Name").AsString().NotNullable()
.WithColumn("PrimaryDomainName").AsString().Nullable()
.WithColumn("IsFederated").AsBoolean().NotNullable()
.WithColumn("IsActive").AsBoolean().Nullable().WithDefaultValue(1)
.WithColumn("FederatedEndpoint").AsString().Nullable()
.WithColumn("CreatedBy").AsString().NotNullable()
.WithColumn("CreatedOn").AsDateTime().NotNullable().WithDefaultValue(DateTime.Now)
.WithColumn("ModifiedBy").AsString().NotNullable()
.WithColumn("ModifiedOn").AsDateTime().NotNullable().WithDefaultValue(DateTime.Now);
}
public override void Down()
{
Delete.Table("Accounts");
}
}
}
Есть ли предыдущие миграции в таблице VersionInfo? Вы строите dll миграции в качестве отладки (а не выпуска) в Visual Studio? –
Вы когда-нибудь дошли до конца? –