我想自动创建架构(如果不存在)。目前我使用此代码来创建架构:
new SchemaExport(_configuration)
.SetDelimiter(";").SetOutputFile("schema.sql").Create(true, true);
但我有两个问题:
1) 它需要有一个空模式才能工作。如果我给它一次性使用的管理员凭据,我希望它为自己创建一个空架构和用户。
2)我希望它仅在模式为空或已过时时创建模式。是否可以让 nhibernate 检查这一点?当然,如果架构过时,我需要一种方法来询问用户是否重新生成架构和松散数据。
我正在使用 MySql 5,但我希望这可以在不绑定(bind)到具体数据库提供程序的情况下实现。
更新:用户只需安装 MySql 并在安装时输入一些管理员凭据。之后,他可以运行我的应用程序,并且它应该通过询问用户的管理员凭据来创建自己的架构、用户并分配权限。
最佳答案
我回答得很similar question here .
您必须自己检查数据库是否为空,并在必要时创建它。还有一个 ValidateSchema 方法来检查模式是否对应于实际的映射定义。其他一切都是您自己的代码。
用户和权限也可以安装为 DatabaseObjects在映射文件中。
关于c# - 从无到有在 Nhibernate 中创建模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314594/