Skip to content

NH-4008 - Split database providers into own projects. #626

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build-common/nhibernate-properties.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
<project xmlns="http://nant.sf.net/release/0.85-rc3/nant.xsd">
<property name="nhibernate.dialect" value="NHibernate.Dialect.MsSql2008Dialect" overwrite="false"/>
<property name="nhibernate.command_timeout" value="444" overwrite="false"/>
<property name="nhibernate.connection.driver_class" value="NHibernate.Driver.Sql2008ClientDriver" overwrite="false"/>
<property name="nhibernate.connection.driver_class" value="NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer" overwrite="false"/>
<property name="nhibernate.connection.connection_string" value="Server=.\SQLExpress;initial catalog=nhibernate;Integrated Security=SSPI" overwrite="false"/>
</project>
2 changes: 1 addition & 1 deletion build-common/teamcity-hibernate.cfg.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<property name="format_sql">true</property>

<!-- This is the System.Data.dll provider for MSSQL Server -->
<property name="connection.driver_class">NHibernate.Driver.Sql2008ClientDriver</property>
<property name="connection.driver_class">NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer</property>
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
<property name="connection.connection_string">Server=.\SQLExpress;initial catalog=nhibernate;Integrated Security=SSPI</property>
<property name="show_sql">false</property>
Expand Down
36 changes: 36 additions & 0 deletions default.build
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@
<property name="bin-pack.tmpdir" value="${build.dir}/tmp-bin" />
<property name="bin-pack.conf-template" value="${bin-pack.tmpdir}/Configuration_Templates" />
<property name="bin-pack.required" value="${bin-pack.tmpdir}/Required_Bins" />
<property name="bin-pack.drivers" value="${bin-pack.tmpdir}/Select_Single_Driver" />
<property name="bin-pack.tests" value="${bin-pack.tmpdir}/Tests" />

<copy file="releasenotes.txt" todir="${bin-pack.tmpdir}"/>
Expand Down Expand Up @@ -254,6 +255,41 @@
<include name="Remotion.Linq.EagerFetching.???" />
</fileset>
</copy>
<copy todir="${bin-pack.drivers}">
<fileset basedir="${root.dir}/src/NHibernate.Driver.Firebird/bin/${build.config}/net461">
<include name="NHibernate.Driver.*.???" />
</fileset>
</copy>
<copy todir="${bin-pack.drivers}">
<fileset basedir="${root.dir}/src/NHibernate.Driver.MySql/bin/${build.config}/net461">
<include name="NHibernate.Driver.*.???" />
</fileset>
</copy>
<copy todir="${bin-pack.drivers}">
<fileset basedir="${root.dir}/src/NHibernate.Driver.Oracle.Managed/bin/${build.config}/net461">
<include name="NHibernate.Driver.*.???" />
</fileset>
</copy>
<copy todir="${bin-pack.drivers}">
<fileset basedir="${root.dir}/src/NHibernate.Driver.PostgreSql/bin/${build.config}/net461">
<include name="NHibernate.Driver.*.???" />
</fileset>
</copy>
<copy todir="${bin-pack.drivers}">
<fileset basedir="${root.dir}/src/NHibernate.Driver.SQLite/bin/${build.config}/net461">
<include name="NHibernate.Driver.*.???" />
</fileset>
</copy>
<copy todir="${bin-pack.drivers}">
<fileset basedir="${root.dir}/src/NHibernate.Driver.SqlServer/bin/${build.config}/net461">
<include name="NHibernate.Driver.*.???" />
</fileset>
</copy>
<copy todir="${bin-pack.drivers}">
<fileset basedir="${root.dir}/src/NHibernate.Driver.SqlServer.Compact/bin/${build.config}/net461">
<include name="NHibernate.Driver.*.???" />
</fileset>
</copy>
<!-- Tests -->
<copy file="${root.dir}/src/NHibernate.Test/TestEmbeddedConfig.cfg.xml" todir="${bin-pack.tests}"/>
<copy file="${root.dir}/src/NHibernate.DomainModel/ABC.hbm.xml" todir="${bin-pack.tests}"/>
Expand Down
100 changes: 77 additions & 23 deletions doc/reference/modules/configuration.xml
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,13 @@ var session = sessions.OpenSession(conn);
take care of setting the <literal>IDriver</literal> using a sensible default. See the API
documentation of the specific dialect for the defaults.
</para>
<para>
Since NHibernate v5.1, drivers having a NuGet package for their data provider have a
<literal>NHibernate.Driver</literal> dedicated assembly, which have to be referenced by your project.
Those assemblies are also available as NuGet packages.
If an obsolete driver is configured, NHibernate will issue a warning log when building the session
factory.
</para>
</entry>
</row>
<row>
Expand Down Expand Up @@ -1186,9 +1193,13 @@ in the parameter binding.</programlisting>
<entry>Firebird</entry>
<entry><literal>NHibernate.Dialect.FirebirdDialect</literal></entry>
<entry>
Set <literal>driver_class</literal> to
<literal>NHibernate.Driver.FirebirdClientDriver</literal>
for Firebird ADO.NET provider 2.0.
Install NuGet package
<ulink url="https://www.nuget.org/packages/NHibernate.Driver.Firebird/">NHibernate.Driver.Firebird</ulink>
and set <literal>driver_class</literal> to
<literal>NHibernate.Driver.FirebirdDriver, NHibernate.Driver.Firebird</literal>
with a fallback on the built-in reflection based
<literal>NHibernate.Driver.FirebirdClientDriver</literal>.
Both use Firebird ADO.NET provider.
</entry>
</row>
<row>
Expand Down Expand Up @@ -1219,65 +1230,99 @@ in the parameter binding.</programlisting>
<row>
<entry>Microsoft SQL Server 7</entry>
<entry><literal>NHibernate.Dialect.MsSql7Dialect</literal></entry>
<entry></entry>
<entry>Use the same default driver as <literal>NHibernate.Dialect.MsSql2000Dialect</literal>.</entry>
</row>
<row>
<entry>Microsoft SQL Server 2000</entry>
<entry><literal>NHibernate.Dialect.MsSql2000Dialect</literal></entry>
<entry></entry>
<entry>
Install NuGet package
<ulink url="https://www.nuget.org/packages/NHibernate.Driver.SqlServer/">NHibernate.Driver.SqlServer</ulink>
and set <literal>driver_class</literal> to
<literal>NHibernate.Driver.SqlServer2000Driver, NHibernate.Driver.SqlServer</literal>
with a fallback on the built-in reflection based
<literal>NHibernate.Driver.SqlClientDriver</literal>.
Both use <literal>System.Data.SqlClient</literal>.
</entry>
</row>
<row>
<entry>Microsoft SQL Server 2005</entry>
<entry><literal>NHibernate.Dialect.MsSql2005Dialect</literal></entry>
<entry></entry>
<entry>Use the same default driver as <literal>NHibernate.Dialect.MsSql2000Dialect</literal>.</entry>
</row>
<row>
<entry>Microsoft SQL Server 2008</entry>
<entry><literal>NHibernate.Dialect.MsSql2008Dialect</literal></entry>
<entry></entry>
<entry>
Install NuGet package
<ulink url="https://www.nuget.org/packages/NHibernate.Driver.SqlServer/">NHibernate.Driver.SqlServer</ulink>
and set <literal>driver_class</literal> to
<literal>NHibernate.Driver.SqlServer2008Driver, NHibernate.Driver.SqlServer</literal>
with a fallback on the built-in reflection based
<literal>NHibernate.Driver.Sql2008ClientDriver</literal>.
Both use <literal>System.Data.SqlClient</literal>.
</entry>
</row>
<row>
<entry>Microsoft SQL Azure Server 2008</entry>
<entry><literal>NHibernate.Dialect.MsSqlAzure2008Dialect</literal></entry>
<entry></entry>
<entry>Use the same default driver as <literal>NHibernate.Dialect.MsSql2008Dialect</literal>.</entry>
</row>
<row>
<entry>Microsoft SQL Server 2012</entry>
<entry><literal>NHibernate.Dialect.MsSql2012Dialect</literal></entry>
<entry></entry>
<entry>Use the same default driver as <literal>NHibernate.Dialect.MsSql2008Dialect</literal>.</entry>
</row>
<row>
<entry>Microsoft SQL Server Compact Edition</entry>
<entry><literal>NHibernate.Dialect.MsSqlCeDialect</literal></entry>
<entry>
Install NuGet package
<ulink url="https://www.nuget.org/packages/NHibernate.Driver.SqlServer.Compact/">NHibernate.Driver.SqlServer.Compact</ulink>
and set <literal>driver_class</literal> to
<literal>NHibernate.Driver.SqlServerCompactDriver, NHibernate.Driver.SqlServer.Compact</literal>
with a fallback on the built-in reflection based
<literal>NHibernate.Driver.SqlServerCeDriver</literal>.
Both use <literal>System.Data.SqlServerCe</literal>.
</entry>
</row>
<row>
<entry>Microsoft SQL Server Compact Edition 4.0</entry>
<entry><literal>NHibernate.Dialect.MsSqlCe40Dialect</literal></entry>
<entry>Use the same default driver as <literal>NHibernate.Dialect.MsSqlCeDialect</literal>.</entry>
</row>
<row>
<entry>MySQL 3 or 4</entry>
<entry>MySQL 3 or 4</entry>
<entry><literal>NHibernate.Dialect.MySQLDialect</literal></entry>
<entry></entry>
<entry>
Install NuGet package
<ulink url="https://www.nuget.org/packages/NHibernate.Driver.MySql/">NHibernate.Driver.MySql</ulink>
and set <literal>driver_class</literal> to
<literal>NHibernate.Driver.MySqlDriver, NHibernate.Driver.MySql</literal>
with a fallback on the built-in reflection based
<literal>NHibernate.Driver.MySqlDataDriver</literal>.
Both use <literal>MySql.Data</literal>.
</entry>
</row>
<row>
<entry>MySQL 5</entry>
<entry><literal>NHibernate.Dialect.MySQL5Dialect</literal></entry>
<entry></entry>
<entry>Use the same default driver as <literal>NHibernate.Dialect.MySQLDialect</literal>.</entry>
</row>
<row>
<entry>MySQL 5 Inno DB</entry>
<entry><literal>NHibernate.Dialect.MySQL5InnoDBDialect</literal></entry>
<entry></entry>
<entry>Use the same default driver as <literal>NHibernate.Dialect.MySQLDialect</literal>.</entry>
</row>
<row>
<entry>MySQL 5.5</entry>
<entry><literal>NHibernate.Dialect.MySQL55Dialect</literal></entry>
<entry></entry>
<entry>Use the same default driver as <literal>NHibernate.Dialect.MySQLDialect</literal>.</entry>
</row>
<row>
<entry>MySQL 5.5 Inno DB</entry>
<entry><literal>NHibernate.Dialect.MySQL55InnoDBDialect</literal></entry>
<entry></entry>
<entry>Use the same default driver as <literal>NHibernate.Dialect.MySQLDialect</literal>.</entry>
</row>
<row>
<entry>Oracle</entry>
Expand All @@ -1299,15 +1344,17 @@ in the parameter binding.</programlisting>
<entry><literal>NHibernate.Dialect.Oracle12cDialect</literal></entry>
<entry></entry>
</row>
<row>
<entry>PostgreSQL</entry>
<entry><literal>NHibernate.Dialect.PostgreSQLDialect</literal></entry>
<entry></entry>
</row>
<row>
<entry>PostgreSQL</entry>
<entry><literal>NHibernate.Dialect.PostgreSQLDialect</literal></entry>
<entry>
Install NuGet package
<ulink url="https://www.nuget.org/packages/NHibernate.Driver.PostgreSql/">NHibernate.Driver.PostgreSql</ulink>
and set <literal>driver_class</literal> to
<literal>NHibernate.Driver.PostgreSqlDriver, NHibernate.Driver.PostgreSql</literal>
with a fallback on the built-in reflection based
<literal>NHibernate.Driver.NpgsqlDriver</literal>.
Both use <literal>Npgsql</literal>.
</entry>
</row>
<row>
Expand All @@ -1316,6 +1363,7 @@ in the parameter binding.</programlisting>
<entry>
This dialect supports <literal>FOR UPDATE NOWAIT</literal>
available in PostgreSQL 8.1.
Use the same default driver as <literal>NHibernate.Dialect.PostgreSQLDialect</literal>.
</entry>
</row>
<row>
Expand All @@ -1325,22 +1373,28 @@ in the parameter binding.</programlisting>
This dialect supports <literal>IF EXISTS</literal> keyword in
<literal>DROP TABLE</literal> and <literal>DROP SEQUENCE</literal>
available in PostgreSQL 8.2.
Use the same default driver as <literal>NHibernate.Dialect.PostgreSQLDialect</literal>.
</entry>
</row>
<row>
<entry>PostgreSQL 8.3</entry>
<entry><literal>NHibernate.Dialect.PostgreSQL83Dialect</literal></entry>
<entry>
This dialect supports <literal>XML</literal> type.
Use the same default driver as <literal>NHibernate.Dialect.PostgreSQLDialect</literal>.
</entry>
</row>
<row>
<entry>SQLite</entry>
<entry><literal>NHibernate.Dialect.SQLiteDialect</literal></entry>
<entry>
Set <literal>driver_class</literal> to
<literal>NHibernate.Driver.SQLite20Driver</literal>
for System.Data.SQLite provider for .NET 2.0.
Install NuGet package
<ulink url="https://www.nuget.org/packages/NHibernate.Driver.SQLite/">NHibernate.Driver.SQLite</ulink>
and set <literal>driver_class</literal> to
<literal>NHibernate.Driver.SQLiteDriver, NHibernate.Driver.SQLite</literal>
with a fallback on the built-in reflection based
<literal>NHibernate.Driver.SQLite20Driver</literal>.
Both use <literal>System.Data.SQLite</literal>.
<para>
Due to
<ulink url="https://system.data.sqlite.org/index.html/tktview/44a0955ea344a777ffdbcc077831e1adc8b77a36">the
Expand Down
Loading