Est-il possible d'utiliser couramment migrator dans application_start?

J'utilise couramment migrator pour gérer mon migrations de base de données, mais ce que je voudrais faire est de les migrations exécuter à l'application de démarrage. Le plus proche que j'ai réussi, c'est ce:

public static void MigrateToLatest(string connectionString)
{
    using (var announcer = new TextWriterAnnouncer(Console.Out)
                                {
                                    ShowElapsedTime = true,
                                    ShowSql = true
                                })
    {
        var assembly = typeof(Runner).Assembly.GetName().Name;

        var migrationContext = new RunnerContext(announcer)
        {
            Connection = connectionString,
            Database = "SqlServer2008",
            Target = assembly
        };

        var executor = new TaskExecutor(migrationContext);
        executor.Execute();
    }
}

Je suis sûr que j'ai eu ce travail, mais je n'ai pas regardé depuis un moment (projet de loisirs) et il est maintenant jeter référence null exceptions quand il arrive à l' Execute ligne. Malheureusement, il n'y a pas de docs pour cela et j'ai été frapper ma tête sur elle pour les âges.

Quelqu'un a réussi à faire passer ce genre de chose à travailler avec FluentMigrator?

  • Je vais le dire ici: Mauvaise Idée. Attacher les déploiements/migrations dans le début de votre application? La folie. Quelle est l'application va faire si un échec de la migration? Ne pas démarrer?
  • l'application est-elle susceptible de s'exécuter si elle s'attend à l'migré de la base de données? À défaut au démarrage est la bonne réponse.
  • Peine. Vous devez immédiatement faire reculer une application qui a omis de sa migration. L'application ne devrait pas être conscient de ce que la version qu'il est, il doit il suffit d'exécuter la version qu'il possède.
  • Ce sujet pour les essais? La génération d'une base de données vide pour effectuer l'intégration ou de tests d'acceptation contre. C'est une bonne et utile scénario.
  • Il y a quelques années, mais ce que je fais maintenant est: Construire server s'exécute sql migrations (redgate outils), s'ils ne l'accumulation revient, si ce n'est qu'ils continuent et le déploiement du logiciel. C'est la même chose pour l'assurance qualité, live etc. Localement, l'équipe de dev utilisation de redgate sql contrôle de code source. Il s'avère être une manière stable de travail.
InformationsquelleAutor ilivewithian | 2011-09-27