从零开始在Nhibernate中创建模式

时间:2012-09-07 08:40:11

标签: c# nhibernate fluent-nhibernate

我想自动创建架构,如果不存在的话。目前我使用此代码创建架构:

new SchemaExport(_configuration)
           .SetDelimiter(";").SetOutputFile("schema.sql").Create(true, true);

但我有两个问题:

1)它需要有一个空模式才能工作。我希望它为自己创建一个空模式和用户,如果我给它一次使用它的管理员凭据。

2)我希望它只在它是空的或过时的时候创建模式。是否可以进行nhibernate检查?当然,在过时模式的情况下,我需要一种方法来询问用户是否重新生成模式和松散数据。

我正在使用MySql 5,但我希望这可以在不绑定到具体数据库提供程序的情况下实现。

更新:用户只需安装MySql并在安装时输入一些管理员凭据即可。之后,他可以运行我的应用程序,它应该通过询问用户的管理员凭据来创建自己的架构,用户和分配权限。

1 个答案:

答案 0 :(得分:2)

我回答了一个非常similar question here

您必须自己检查数据库是否为空,并在必要时创建它。还有一个ValidateSchema方法来检查模式是否与实际的映射定义相对应。其他一切都是你自己的代码。

用户和权限也可以作为DatabaseObjects安装在映射文件中。