开源DataBase组件:FluentMigrator

2012-05-27 19:09 by 破狼, 2211 阅读, 4 评论, 收藏编辑

今天将介绍一款开源组件FluentMigrator,其提供了jQuery式链式编程方式,和3.0后的表达式语法使其语义清晰。主要提供我们队数据库结构的维护,版本控制回滚和新增。适用于 敏捷和TDD实践中我们的需求功能的递增,数据结构增加,可持续化集成,应用场景感觉如其名Fluent(流畅)。

一:我们先利用NuGet安装FluentMigrator:

1:在vs在打开Package Manager Console:

2:安装FluentMigrator:

3:如果你希望控制台提交,可以安装其tools:

二:下面我面做一个简单的实例订单Order(这里仅列出其部分字段,不会考虑实际业务):

DO:


using System; 

namespace FluentMigratorTest 

    public  class  Orders 
    { 
        public int ID { get; set; }          public string CustomerID { get; set; }          public decimal DisCount { get; set; }          public DateTime OrderDate { get; set; } 
    } 
}  

表结构块:


using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using FluentMigrator;  namespace FluentMigratorTest 

    [Migration(0)] 
    public class OrderMigration:Migration 
    { 
        public override void Up() 
        {                      
            Create.Table("Orders_test")                
                .WithColumn("ID").AsInt32().Identity().PrimaryKey("id_pk").Indexed("Orders_Pk_ID") 
                .WithColumn("CustomerID").AsString().ForeignKey("Customers", "CustomerID").NotNullable() 
                .WithColumn("DisCount").AsDecimal().WithDefaultValue(0) 
                .WithColumn("OrderDate").AsDateTime().WithDefault(SystemMethods.CurrentDateTime); 
        }          public override void Down() 
        {   
            Delete.Table("Orders_test"); 
        } 
    } 
}

其提供了Up版本递增和Down回滚。语法是不是很流畅?其不仅这些功能还提供了:

对表结构的新增,修改,删除,执行sql方法。

利用其提供的tools,更新在数据库

支持数据库:

本博客已经转移个人博客破狼,也有有部分更新,但不保证及时维护,如果你希望及时看到本人的新日志,那请订阅破狼-RSS

作者:破  狼 
出处:http://www.cnblogs.com/whitewolf/

FluentMigrator的更多相关文章

  1. 如何使用FluentMigrator进行数据库迁移

    标题:如何使用FluentMigrator进行数据库迁移 地址:https://www.cnblogs.com/lwqlun/p/10649949.html 作者: Lamond Lu FluentM ...

  2. 使用FluentMigrator进行数据库迁移

    介绍 在开发的过程中,经常会遇到数据库结构变动(表新增.删除,表列新增.修改.删除等).开发环境.测试环境.正式环境都要记性同步:如果你使用EF有自动迁移的功能,还是挺方便的.如果非EF我们需要手工处 ...

  3. ABP源码分析一:整体项目结构及目录

    ABP是一套非常优秀的web应用程序架构,适合用来搭建集中式架构的web应用程序. 整个Abp的Infrastructure是以Abp这个package为核心模块(core)+15个模块(module ...

  4. 写给.NET开发者的数据库Migration方案

    微软给我们提供了一种非常好用的数据库迁移方案,但是我发现周围的同学用的并不多,所以我还是想把这个方案整理一下..NET选手看过来,特别是还在通过手工执行脚本来迁移数据库的同学们,当然你也可以选择EF的 ...

  5. DotNet 资源大全中文版(Awesome最新版)

    Awesome系列的.Net资源整理.awesome-dotnet是由quozd发起和维护.内容包括:编译器.压缩.应用框架.应用模板.加密.数据库.反编译.IDE.日志.风格指南等. 算法与数据结构 ...

  6. DotNet 资源大全

    awesome-dotnet 是由 quozd 发起和维护.内容包括:编译器.压缩.应用框架.应用模板.加密.数据库.反编译.IDE.日志.风格指南等. https://github.com/jobb ...

  7. 《.NET开发资源大全》

    目录 API 应用框架(Application Frameworks) 应用模板(Application Templates) 人工智能(Artificial Intelligence) 程序集处理( ...

  8. ABP理论学习之Nuget包

    返回总目录 本篇目录 框架 测试基 ABP已经发布在Nuget上,这里是所有包的列表. 框架 Abp Abp系统的核心包.所有其他的包都依赖这个包. Abp.Web 提供了MVC和Web API都使用 ...

  9. 转帖:DotNet 资源大全中文版

    (注:下面用 [$] 标注的表示收费工具,但部分收费工具针对开源软件的开发/部署/托管是免费的) API 框架 NancyFx:轻量.用于构建 HTTP 基础服务的非正式(low-ceremony)框 ...

随机推荐

  1. 由Java代码运行shell命令/脚本

    JDK有两种方法自带通Runtime.getRuntime().exec()和ProcessBuilder课上做, 后者是JDK1.5引进后,,政府还提出要放弃使用Runtime顺便做.现的时候就是採 ...

  2. socket-详细分析No buffer space available(转)

    新年上班第一天,突然遇到一个socket连接No buffer space available的问题,导致接口大面积调用(webservice,httpclient)失败的问题,重启服务器后又恢复了正 ...

  3. 概率图形模型(PGM)学习笔记(四)-贝叶斯网络-伯努利贝叶斯-贝叶斯多项式

    之前忘记强调重要的差异:链式法则的条件概率和贝叶斯网络的链式法则之间的差异 条件概率链式法则 P\left({D,I,G,S,L} \right) = P\left( D \right)P\left( ...

  4. linux 文件系统解析及相关命令(转)

    简介 文件系统就是分区或磁盘上的所有文件的逻辑集合. 文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件.目录.软连接及文件保护信息等都存储在其中. 不同Lin ...

  5. emacs quick open and jump file (or buffer) which name is current word

    Sometime, we need to open a file or buffer which name begin with current word in emacs. Here I give ...

  6. [Tool]利用Advanced Installer建立x86/x64在一起的安装程式

    原文 [Tool]利用Advanced Installer建立x86/x64在一起的安装程式 之前使用InstallShield做安装程式时,如果要将程式放在Program Files的话,需要分别针 ...

  7. Oracle常见操作汇总(转)

    前言:Oracle学习也有十几天了,但是呢,接下来还要学习许多其他的东西,并不能提步不前,所以在此总结了以下Oracle中常用的命令和语句,没有语法都是实例,以便以后工作的时候随时翻看,毕竟是自己的东 ...

  8. MySQL分页实现

    mysql> select pname from product; +--------+ | pname  | +--------+ | 产品1  | | 产品2  | | 产品三 | +--- ...

  9. Java Web整合开发(3) -- Servlet

    Servlert基本程序架构: (FirstServlet.java + web.xml) FirstServlet.java package com.helloben.servlet; import ...

  10. 【智能家居篇】wifi网络访问原理(下一个)——联想Association

    转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 认证完毕后,下一步就是关联(Association). 工作站与基站进行关联.以便获得网络的全然訪问权. 关联属于一 ...