C# NHibernate';s SchemaUpdate在PostgreSQL数据库上不执行任何操作

C# NHibernate';s SchemaUpdate在PostgreSQL数据库上不执行任何操作,c#,nhibernate,postgresql,C#,Nhibernate,Postgresql,我使用NHibernate 3.0和Postgres 9.0.4。当我尝试一个newschemaupdate(cfg).Execute(scriptAction,true)什么也没发生。没有异常,没有SQL输出(即使提供的操作scriptAction也不会被调用),也没有创建表。如果我改用SchemaExport,一切都会像符咒一样工作。所以我假设我的配置和映射是正确的。 我读到关于NHibernate2.something.something和Postgres8.something的结合以及S

我使用NHibernate 3.0和Postgres 9.0.4。当我尝试一个
newschemaupdate(cfg).Execute(scriptAction,true)什么也没发生。没有异常,没有SQL输出(即使提供的
操作scriptAction
也不会被调用),也没有创建表。如果我改用SchemaExport,一切都会像符咒一样工作。所以我假设我的配置和映射是正确的。 我读到关于NHibernate2.something.something和Postgres8.something的结合以及SchemaUpdate的使用的问题。有人能确认SchemaUpdate对于Postgres和NHibernate的更新版本仍然不可用,或者更好,有人能指导我找到问题的解决方案吗

提前谢谢

编辑:

事实上也有例外,正如我最近发现的。SchemaUpdate不会抛出它们,而是将它们存储在其Exceptions属性中。
我在
NHibernate.dialogue.dialogue.GetDataBaseSchema(DbConnection连接)
中得到了两个
System.NotSupportedException
,没有额外的数据,这表明SchemaUpdate不能用于PostgreSQL,但如果是这种情况,肯定有人已经发现了。我尝试了这两种方法,
.postgresqldialtential
.postgresql82dialential
,但都没有成功。

我几乎是自己回答了这个问题


对nhibernate版本3.0.0GA的源代码进行简要检查后发现,
.postgresqldialten
确实没有覆盖基类“
GetDataBaseSchema(DbConnection)
方法,因此抛出
系统。不支持异常
,并且不存在Postgres方言的
IDataBaseSchema
实现者。奇怪的是,NHibernate文档没有提到这个小细节。

你能升级到最新版本吗?看起来数据提供商/方言组件在NHibernate 3.2.0 GA中为Postgre进行了重大升级

发件人:

构建3.2.0.GA(rev6000)
============================================================

**改进
*[NH-2571]-完全支持PostgreSQL

不确定这是否有帮助。如果您使用的是Fluent(最新版本适用于NH3.1.0),那么您仍然运气不佳

更新:您使用了哪种Fluent源?我只是用NH3.2.0编译的很好。事实上,它是在8月11日更新的,消息是“将NHibernate 3.x程序集更新为3.2”


由于依赖NH3.1.0的外部程序集,我还不能移动到新版本。我所做的是使用
SchemaExport.Create(Action,false)
将DDL写入文本文件。我知道已更改的映射,我手动修改数据库以匹配NH认为应该是什么样子。这很难看,但如果您在极少数情况下只有一些更改,它是可行的。

您使用HBM或FluenetHibernate映射,NHibernate 3.2可以解决您的问题


但在NHibernate 3.2中使用了大量的代码映射,同样的问题也出现了。

不幸的是,我不能。Fluent 1.2似乎只支持NHibernate 3.1。我无法流畅地针对NHibernate 3.2进行编译,但我认为由于GetDataBaseSchema(DbConnection)在本版本中被重写,使用3.2将解决问题。谢谢你的回答。谢谢你提到异常在exceptions属性中。如果它真的把它们扔了会更好!