我有以下代码在Nhibernate
中生成数据库的模式new SchemaExport(configuration).Execute(true, true, false);
但是当针对PostgreSQL数据库运行时,我最终得到以下错误
[NpgsqlException (0x80004005): FATAL: 3D000: database "dbname" does not exist]
但是,如果我手动创建数据库,则会导出架构而不会出现错误。问题是:为什么Nhibernate SchemaExport无法创建PostgreSQL数据库,但这对SQLite,MsSqlCe和MsSql Server等其他数据库起作用。
我搜索了在线文献,但无法找到关于此问题的任何突出显示。
我在PostgreSQL 9.2中使用Nhibernate 3.3.1。
答案 0 :(得分:2)
您必须先创建数据库,然后才能在数据库中创建表和其他对象。
使用PostgreSQL连接上的CREATE DATABASE
语句执行此操作 - 在您的应用中,或通过psql
或PgAdmin-III
。
PostgreSQL不支持按需创建数据库/首次访问。也许这就是你的工具所期待的?
如果您认为数据库确实存在并且您可以在其他工具中看到它,那么您可能没有连接到同一个数据库服务器?检查服务器地址和端口。