Using NHibernate Schema Tool

In many cases, you'll want to include building or updating your database in some larger process, such as a build script or installation process. In this recipe, I'll show you how to use this command-line tool to run our hbm2ddl tasks.

Getting ready

Download the latest release of NHibernate Schema Tool from http://nst.codeplex.com/.

To install NHibernate Schema Tool, follow these steps:

  1. Create a new folder in C:Program Files named NHibernateSchemaTool.
  2. Copy nst.exe to the newly created folder.
  3. Add C:Program FilesNHibernateSchemaTool to your PATH environment variable.

After the installation of the NHibernate Schema Tool, follow these steps:

  1. Complete the Configuring NHibernate with App.config recipe from the beginning of this chapter.
  2. Install Microsoft SQL Server 2008 Express on your PC, using the default settings.
  3. Create a blank database named NHCookbook.

    Note

    This recipe works for any RDBMS supported by NHibernate. To use a different system, adjust your connection string and dialect accordingly.

How to do it...

  1. Add a new file to your project named hibernate.cfg.xml with the following code:
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-configuration 
    xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="proxyfactory.factory_class">
        NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
      </property>
      <property name="dialect">
        NHibernate.Dialect.MsSql2008Dialect, NHibernate
      </property>
      <property name="connection.connection_string">
        Server=.SQLExpress; Database=NHCookbook; Trusted_Connection=SSPI
      </property>
    </session-factory>
    </hibernate-configuration>
  2. For hibernate.cfg.xml, on the properties tab, set Copy To Output Directory to Copy Always.
  3. Build your solution.
  4. Open a command prompt window, and switch to the directory containing your compiled mapping assembly and hibernate.cfg.xml.

    Note

    To open the command prompt window quickly, in Visual Studio, right-click on your project, and choose Open Folder in Windows Explorer. Open the bin folder. While holding down Shift, right-click on the Debug folder. Choose Open Command Window Here.

  5. Run the following command:
    nst /c:hibernate.cfg.xml /a:Eg.Core.dll /o:Create.

How it works...

NHibernate Schema Tool is a command-line wrapper for the hbm2ddl tool. This makes NST ideal for use in build scripts and continuous integration servers.

The /c argument specifies the configuration file. It's no mistake that the content of hibernate.cfg.xml is nearly identical to the hibernate-configuration section in the app.config. The /a argument specifies the assembly with our classes and mapping embedded resource files. The /o:Create option tells NHibernate to create our database objects. It also supports Update and Delete.

There's more...

NST has several options, enabling a number of creative uses. NST supports these command-line options:

Command-line option

Description

/c:<path-to-hibernate-config>

Specifies NHibernate config file to use.

/a:<assembly[;assembly2

Path to assembly or semicolon-separated list of assemblies containing embedded .hbm.xml files. These assemblies may also contain persistent classes.

/m:<assembly[;assembly2]>

Path to assembly or semicolon-separated list of assemblies containing persistent classes.

/d:<path[;path2]>

Directory or directories containing .hbm.xml mapping files.

/s

Generate script, but don't execute. Script is written to the console.

/v

Generate script and execute. Script is written to the console.

/o:<Create|Update|Delete>

Specifies Create, Update, or Delete operation.

See also

  • Configuring NHibernate with App.config
  • Configuring NHibernate with hibernate.cfg.xml
  • Configuring NHibernate with code
  • Configuring NHibernate with Fluent NHibernate
  • Configuring NHibernate Using ConfORM Mappings
  • Generating the database
  • Scripting the database
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.18.101