zoukankan      html  css  js  c++  java
  • FluentMigrator

    开源DataBase组件:FluentMigrator

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

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

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

    1:在vs在打开Package Manager Console:

    image

    2:安装FluentMigrator:

    image

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

    image

    二:下面我面做一个简单的实例订单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回滚。语法是不是很流畅?其不仅这些功能还提供了:

     

    image

    image

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

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

    image

    支持数据库:

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


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

  • 相关阅读:
    初探 Linux
    操作系统简介
    1208. 尽可能使字符串相等
    643. 子数组最大平均数 I
    480. 滑动窗口中位数
    Bisect in Python
    HTTP 和 HTTPS 的区别
    URI和URL的区别
    HTTP 1.0和HTTP 1.1的主要区别是什么?
    MySQL游标的使用笔记大全
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4120277.html
Copyright © 2011-2022 走看看