Pregunta

¿Dónde debo poner mi método NHibernate SchemaExport y cómo debo llamarlo cuando decido volver a crear la base de datos?

¿Debo dejar esto en mi proyecto de inicio (un proyecto asp.net mvc)? Debería crear un proyecto de consola separada sólo para exportar mi esquema?

Creo que estas preguntas todo se originan en el hecho de que no quiero exportación de esquemas para ejecutar cada vez que la aplicación web se inicia.

Estoy usando nhibernate fluidez si eso hace la diferencia.

¿Fue útil?

Solución

I sería factor esto a cabo en un conjunto independiente; A continuación, puede utilizar esto de una variedad de lugares (aplicación de consola, la configuración de prueba de integración, instalador, etc).

Otros consejos

Como una idea: es colocarlo en un ProjectInstaller que tiene opcionalmente un argumento de línea de comandos. Por lo que no tendría que tener una aplicación de consola extra sólo para eso.

En lo personal yo uso dos pruebas (usando Nunit en este caso) para crear o actualizar la base de datos. En ambos casos, sólo generar la secuencia de comandos, ya que quiero un control total en cuanto a cuando la base de datos se crea o se actualiza.

    [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);
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top