我想自动创建架构,如果不存在的话。目前我使用此代码创建架构:
new SchemaExport(_configuration)
.SetDelimiter(";").SetOutputFile("schema.sql").Create(true, true);
但我有两个问题:
1)它需要有一个空模式才能工作。我希望它为自己创建一个空模式和用户,如果我给它一次使用它的管理员凭据。
2)我希望它只在它是空的或过时的时候创建模式。是否可以进行nhibernate检查?当然,在过时模式的情况下,我需要一种方法来询问用户是否重新生成模式和松散数据。
我正在使用MySql 5,但我希望这可以在不绑定到具体数据库提供程序的情况下实现。
更新:用户只需安装MySql并在安装时输入一些管理员凭据即可。之后,他可以运行我的应用程序,它应该通过询问用户的管理员凭据来创建自己的架构,用户和分配权限。
答案 0 :(得分:2)
我回答了一个非常similar question here。
您必须自己检查数据库是否为空,并在必要时创建它。还有一个ValidateSchema方法来检查模式是否与实际的映射定义相对应。其他一切都是你自己的代码。
用户和权限也可以作为DatabaseObjects安装在映射文件中。