Gar*_*ans 3 sql deployment nhibernate fluent-nhibernate
我正在考虑将NHibernate和Fluent NHibernate用于我的下一个项目,但有一件事我想事先清理一下,你是如何管理对数据库的更改的呢?
例如,我有NH + FNH工作,部署应用程序和上线,但我们做的开发环境的改变,例如说我们添加一个新的属性,这是使用NH/FNH映射一个实体.
如何在不丢弃表的情况下将该更改应用于数据库?
谢谢GE
我有很好的使用这个框架的经验:
http://code.google.com/p/migratordotnet/
基本上,您为每个数据库更改创建一个类,并使用时间戳注释该类.然后以时间戳顺序应用最终装配.
这意味着在开发期间,每次结账后都可以轻松地执行db升级过程,并且知道您与世界同步.
using Migrator.Framework;
using System.Data;
namespace DBMigration
{
[Migration(20080401110402)]
public class CreateUserTable_001 : Migration
{
public void Up()
{
Database.CreateTable("User",
new Column("UserId", DbType.Int32,
ColumnProperties.PrimaryKeyWithIdentity),
new Column("Username", DbType.AnsiString, 25)
);
}
public void Down()
{
Database.RemoveTable("User");
}
}
Run Code Online (Sandbox Code Playgroud)