Ich habe wie dieses eine Verbindungszeichenfolge war mit meiner Website zu meiner Datenbank verbinden:Wie eine andere Verbindungszeichenfolge verwenden (aber gleiche Datenbank) für Migrationen
<add name="MyDb"
connectionString="Data Source=MyDb;
Initial Catalog=Staging;
User Id=website_staging;
Password=secret;"
providerName="System.Data.SqlClient" />
Der website_staging
Benutzer ist ein Mitglied der db_ddladmin
Rolle, so dass, wenn ich veröffentliche, und mein Initialisierer läuft, hat es die Berechtigungen erforderlich, um die Datenbank automatisch auf die neueste Version zu migrieren.
Ich mag die Standard-Benutzer-Berechtigungen reduzieren (durch nur auf die db_datareader
und db_datawriter
Rollen Hinzufügen) und eine Verbindung mit einem anderen Benutzer (in der db_ddladmin
Rolle) während der Migration.
So habe ich eine andere Verbindungszeichenfolge mit einem anderen Namen und Benutzer:
<add name="Migrations"
connectionString="Data Source=MyDb;
Initial Catalog=Staging;
User Id=website_staging_migrations;
Password=secret;"
providerName="System.Data.SqlClient" />
Und änderte es den Namen der Verbindungszeichenfolge von dem in meiner DatabaseMigrationConfig
Klasse initialisiert Kontext verwendet:
public class DatabaseMigrationConfig
{
internal static void Register()
{
using (var context = new MyDbContext(Name="Migrations"))
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext,
Migrations.Configuration>());
context.Database.Initialize(false);
}
}
}
Und im Konstruktor meiner Klasse Migrations.Configuration
habe ich auch die Verbindungszeichenfolge geändert:
internal sealed class Configuration : DbMigrationsConfiguration<SID2013Context>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
AutomaticMigrationDataLossAllowed = false;
string cs = ConfigurationManager.ConnectionStrings["Migrations"].ConnectionString;
TargetDatabase = new DbConnectionInfo(cs, "System.Data.SqlClient");
}
}
Ich habe dann versucht, die Website zu veröffentlichen. Es scheint, die Verbindungszeichenfolge mit den höheren Rechten korrekt auszuwählen, aber es versucht, die Initial
-Migration auszuführen. Wie kann ich damit aufhören?