using Inotify.Common; using Inotify.Data.Models; using NPoco.Migrations; using System; namespace Inotify.Data { public class EmptyMigration : Migration, IMigration { protected override void execute() { } } public class LatestMigration : Migration, IMigration { protected override void execute() { if (!Migrator.TableExists()) { Migrator.CreateTable(true).Execute(); Migrator.Database.Insert(new SystemInfo() { key = "administrators", Value = "admin" }); } if (!Migrator.TableExists()) { Migrator.CreateTable(true).Execute(); } if (!Migrator.TableExists()) { Migrator.CreateTable(true).Execute(); SendUserInfo userInfo = new SendUserInfo() { Token = Guid.NewGuid().ToString("N").ToUpper(), UserName = "admin", Email = "admin@qq.com", CreateTime = DateTime.Now, Active = true, Password = "123456".ToMd5() }; Migrator.Database.Insert(userInfo); } if (!Migrator.TableExists()) { Migrator.CreateTable(true).Execute(); } } } public class V2UpdateMigration : Migration, IMigration { protected override void execute() { //V2版本允许多通道,激活标记放入SendAuthInfo表中,增加Active列,同时更新原有用户的激活通道 Migrator.AlterTable().AddColumn(e => e.Active).Execute(); Migrator.AlterTable().AddColumn(e => e.Key).Execute(); Migrator.Database.UpdateMany().OnlyFields(e => e.Active).Execute(new SendAuthInfo() { Active = false }); var activeUsers = Migrator.Database.Query().ToList(); activeUsers.ForEach(user => { var sendUserInfo = Migrator.Database.Query().FirstOrDefault(e => e.Id == user.SendAuthId); if (sendUserInfo != null) { sendUserInfo.Active = true; Migrator.Database.Update(sendUserInfo, e => e.Active); } }); } } public class V2001UpdateMigration : Migration, IMigration { protected override void execute() { var sendAuthInfos = Migrator.Database.Query().ToList(); sendAuthInfos.ForEach(sendAuthInfo => { sendAuthInfo.AuthData = sendAuthInfo.AuthDataSave; Migrator.Database.Update(sendAuthInfo); }); Migrator.Database.Insert(new SystemInfo() { key = "barkKeyId", Value = "TEg0VDlWNVU0Ug==".Base64Decode(), }); Migrator.Database.Insert(new SystemInfo() { key = "barkTeamId", Value = "NVU4TEJSWEczQQ==".Base64Decode(), }); Migrator.Database.Insert(new SystemInfo() { key = "barkPrivateKey", Value = "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR1RBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEJIa3dkd0lCQVFRZzR2dEMzZzVMNUhnS0dKMitUMWVBMHRPaXZSRXZFQVkyZytqdVJYSmtZTDJnQ2dZSUtvWkl6ajBEQVFlaFJBTkNBQVNtT3MzSmtTeW9HRVdac1VHeEZzLzRwdzFySWxTVjJJQzE5TTh1M0c1a3EzNnVwT3d5RldqOUdpM0VqYzlkM3NDNytTSFJxWHJFQUpvdzgvN3RScFYrCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0=".Base64Decode() }); } } public class V2004UpdateMigration : Migration, IMigration { protected override void execute() { var sendAuthInfos = Migrator.Database.Query().ToList(); sendAuthInfos.ForEach(sendAuthInfo => { if (string.IsNullOrEmpty(sendAuthInfo.Key)) sendAuthInfo.Key = Guid.NewGuid().ToString("N").ToUpper(); Migrator.Database.Update(sendAuthInfo); }); } } }