ZKWebFramework数据库迁移流程

主框架(ZKWebFramework)是根据程序集中DbContext进行数据库迁移的。
例如YiMei.Main程序集:
DbContext名称为:YiMeiMigrationDbContext
YiMeiMigrationDbContext那类中有一个静态初始化函数{static YiMeiMigrationDbContext()}

函数中存有数据迁移的配置。
Database.SetInitializer(
            new MigrateDatabaseToLatestVersion<YiMeiMigrationDbContext, Configuration>());

在每一次数据迁移的过程中, Add-Migration 生成的文件不需要删除。
也不需要执行 Update-Database。因为主框架运行会反射各个程序集进行生成数据库。
//
流程1:如果存在Configuration.cs
当实体类(DataBase)有所修改的时候,
Add-Migration进行数据迁移。
然后编译,运行主框架即可。
//--------------------------------------------------------------------------------------
流程2:如果运行Add-Migration失败,那便把Configuration.cs移除,修改
DbContext.cs文件中静态初始化函数
Database.SetInitializer(
            new MigrateDatabaseToLatestVersion<YiMeiMigrationDbContext, Configuration>());

Database.SetInitializer<DbContext类名>(null);

然后运行:Enable-Migrations -EnableAutomaticMigrations命令,
之后进行Add-Migration,再把DbContext.cs文件中静态初始化函数改成
Database.SetInitializer(
            new MigrateDatabaseToLatestVersion<YiMeiMigrationDbContext, Configuration>());
编译后运行主框架即可。

生成的数据,一定要重新将之前存在的数据给删除掉

比如:Common_User Common_UserRole等

  CreateTable(
                "dbo.Common_User",
                c => new
                    {
                        Id = c.Long(nullable: false, identity: true),
                        Username = c.String(nullable: false),
                        Nickname = c.String(nullable: false),
                        Password = c.String(nullable: false),
                        CreateTime = c.DateTime(nullable: false),
                        DeleteState = c.Int(nullable: false),
                        Role_Id = c.Long(),
                        Remark = c.String(),
                    })
                .PrimaryKey(t => t.Id)
                .ForeignKey("dbo.Common_UserRole", t => t.Role_Id)
                .Index(t => t.Username, unique: true, name: "INDEX_Username")
                .Index(t => t.Role_Id);

            CreateTable(
                "dbo.Common_UserRole",
                c => new
                    {
                        Id = c.Long(nullable: false, identity: true),
                        Name = c.String(nullable: false),
                        PrivilegesContent = c.String(nullable: false),
                        CreateTime = c.DateTime(nullable: false),
                        LastUpdated = c.DateTime(nullable: false),
                        Remark = c.String(),
                    })
                .PrimaryKey(t => t.Id);
            DropTable("dbo.Common_UserRole");
            DropTable("dbo.Common_User");
时间: 2024-10-15 10:22:40

ZKWebFramework数据库迁移流程的相关文章

用Kettle的一套流程完成对整个数据库迁移

需求: 1.你是否遇到了需要将mysql数据库中的所有表与数据迁移到Oracle. 2.你是否还在使用kettle重复的画着:表输入-表输出.创建表,而烦恼. 下面为你实现了一套通用的数据库迁移流程. 技术引导: 实现之初,在kettle提供的例子中找到了一个类似的(samples\jobs\process all tables). 通过相关改造,终于达到目标. 实现过程解剖: 整套流程分为:2个job,4个trans. 使用到的Trans插件:表输入.字段选择.复制记录到结果.从结果获取记录.

数据库迁移的方法、步骤和心得

关于数据库迁移的方法.步骤和心得在项目中经常会遇到系统完全更换后的历史数据迁移问题,以示对客户历史工作的尊重,何况很多数据仍有保留的必要.那怎么做历史数据迁移呢?系统分析:1.分析原有的业务系统精确到大致的系统功能模块.大致的处理流程即可2.分析现有的业务系统精确到大致的系统功能模块.大致的处理流程即可3.分析两者自己的区别和差异大致分析一下两个业务系统之间的区别,有助于确定工作量和工作进度4.分析用户对旧有数据的需求分析对旧有数据的需求,才不至于盲目的全部性的进行迁移5.分析用户对旧有数据的处

linux运维、架构之路-数据库迁移

一.wordpress搭建 1.wordpress下载部署 cd /server/tools/ wget https://cn.wordpress.org/wordpress-4.8.1-zh_CN.tar.gz tar xf wordpress-4.8.1-zh_CN.tar.gz mv wordpress/* /application/nginx/html/blog/ chown -R www.www /application/nginx/html/blog/ 注意:确认hosts文件进行了

wordpress博客站点配置及数据库迁移

1.wordpress博客站点部署配置 1.1 检查环境 1.1.1 nginx.conf配置文件 ###检查nginx配置文件 [[email protected] conf]# cat nginx.conf worker_processes 1; events { worker_connections  1024; } http { log_format  main  '$remote_addr - $remote_user [$time_local]"$request" ' '$

MVC VS2012 Code First 数据库迁移教程

1.在"服务资源管理器"连接数据库 2.打开工具-Nuget程序包管理器"程序包管理器控制台" 3.控制台输入命令:PM> Enable-Misgrations 4.以项目MvcGuestbook.Models.MvcGuestbookContext为例: PM> Enable-Misgrations-ContextTypeName MvcGuestbook.Models.MvcGuestbookContext 5.更新数据库:PM>Update-

Oracle数据库迁移的几种方式

面试: 一.exp/imp逻辑备份与恢复: 二.Storage存储迁移: 将数据文件.控制文件.日志文件.spfile挂到新机器上,然后在新机器上启动数据库. 三.利用data guard迁移: 四.用rman做迁移: 我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上.迁移到远程的机房.迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案: 一.exp/imp逻辑备份与恢复:  它是最常用最简单的方法,一般是基于应用的owner级做导出导入.  操作方法为: 在新库建立好o

转 【TTS】AIX平台数据库迁移到Linux--基于RMAN(真实环境)

[TTS]AIX平台数据库迁移到Linux--基于RMAN(真实环境) http://www.cnblogs.com/lhrbest/articles/5186933.html 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用 ⑤ 数据库迁移一般情况下应该收集哪些信息及相应的脚本

Entity Framework Code First数据库迁移(DB Migration)

一.手动迁移 第1步.启用数据库迁移 打开程序包管理器控制台 工具->库程序包管理器->程序包管理器控制台 打开控制台后,在控制台管理窗口输入 Enable-Migrations 指令,铵下回车键,到这里已启用了数据库迁移,但还没执行,结果如下图: 第2步.运行数据库迁移 在控制台管理窗口输入 Add-Migration指令,来新增一条数据库迁移版本,输入时必须要带上一个版本名称 Add-Migration AddProductCategoryTypeName,如下图: 运行完成后会在解决方案

数据库设计流程

数据库设计流程  目前数据库设计一般分为6个阶段, 即需求分析阶段,概念结构设计阶段,逻辑结构设计阶段,物理结构设计阶段,实施阶段,运行与维护阶段. (1) 需求分析阶段 需求分析阶段的主要任务是指通过充分调查现实世界要处理的对象, 详细了解计算机系统的工作情况, 明确用户的各种需求, 然后确定系统的各项功能.数据库系统不仅要按照当前的应用要求来设计, 而且必须充分考虑今后可能的扩充和改变. (2) 概念结构设计阶段 概念结构设计阶段的主要任务是将需求分析阶段所得到的用户需求抽象为概念模型, 而