Ich habe ein Projekt geerbt, das FluentMigrator verwendet, um Migrationen zu verwalten. Ursprünglich führte das Projekt die In-Process-Migrationen durch, als die Anwendung gestartet wurde, aber I.T. Wir haben uns darauf konzentriert und müssen nun einem Datenbankadministrator Skripte für alle Datenbankänderungen bereitstellen.FluentMigrator läuft nicht Migrationen
Als Teil dieser Umstellung habe ich die Migrationen in ein neues Projekt namens Migrationen verschoben. Wenn ich versuche, die Migrationen mit dem Befehlszeilentool auszuführen, scheint es zu funktionieren, aber keine Migrationen werden auf die Datenbank angewendet. Die Datenbankzeichenfolge ist korrekt, da sie nicht erstellt wird, wenn die VersionInfo-Tabelle nicht existiert.
Es gibt eine Reihe von Migrationen, aber die meisten von ihnen sind sehr einfach. Hier ist ein Beispiel für die ersten:
Ich bin mit SQL Server 2012 und FluentMigrator 1.2.1. Hier
ist die Befehlszeile im Text für 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
Und die Probenwanderung:
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");
}
}
}
Gibt es frühere Migrationen in der VersionInfo-Tabelle? Erstellen Sie die Migrationsdll als Debug (und nicht freigeben) in Visual Studio? –
Ist dir das jemals auf den Grund gegangen? –