Question

Où dois-je utiliser ma méthode NHibernate SchemaExport et comment dois-je l'appeler quand je décide de recréer la base de données?

Dois-je laisser dans mon projet de démarrage (un projet de mvc asp.net)? Dois-je créer un projet séparé de la console juste pour exporter mon schéma?

Je pense que ces questions proviennent tous du fait que je ne veux pas l'exportation de schéma pour exécuter chaque fois que l'application Web commence.

J'utilise NHibernate couramment si cela fait une différence.

Était-ce utile?

La solution

Je factoriser ceci dans un assemblage séparé; vous pouvez ensuite utiliser ce à partir d'une variété d'endroits (app console, configuration de test d'intégration, d'installation, etc.).

Autres conseils

Comme une idée: vous pouvez le placer dans un ProjectInstaller qui prend éventuellement un argument de ligne de commande. Donc, vous ne devez avoir une application console supplémentaire juste pour cela.

Personnellement, j'utiliser deux tests (en utilisant Nunit dans ce cas) pour créer ou mettre à jour la base de données. Dans les deux cas, je produis que le script, que je veux le plein contrôle quant au moment où la base de données est créée ou mise à jour.

    [Test]
    [Ignore]
    public void Create_Database_Schema_From_MappingFiles()
    {
        Configuration cfg = new Configuration();
        cfg.Configure();
        var schema = new SchemaExport(cfg);

        schema.Create(true, false);
    }

    [Test]
    [Ignore]
    public void Update_an_existing_database_schema()
    {
        Configuration cfg = new Configuration();
        cfg.Configure();
        var update = new SchemaUpdate(cfg);
        update.Execute(true, false);
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top