当前位置: 首页 > news >正文

网站域名备案需要什么wordpress网页无法运作

网站域名备案需要什么,wordpress网页无法运作,网站标签布局,佛山市南海城市建设投资有限公司使用EF Core的Code First#xff0c;在设计阶段#xff0c;直接使用Database.EnsureCreated()和EnsureDeleted()可以快速删除、更新最新的数据结构。由于没有什么数据#xff0c;删除的风险非常低。但是对于已经投入生产的数据库#xff0c;这个方法就绝对不可行了。 考虑… 使用EF Core的Code First在设计阶段直接使用Database.EnsureCreated()和EnsureDeleted()可以快速删除、更新最新的数据结构。由于没有什么数据删除的风险非常低。但是对于已经投入生产的数据库这个方法就绝对不可行了。 考虑以下场景 项目已经上线一直使用本地测试数据库进行开发本地已经增加和修改了较多数据库表结构线上数据庞大且实时更新现在测试完毕需要进行上线。 如果需要更新生产数据库我能想的有两种方法 从一开始就使用Migration 从数据库开始设计的时候就使用EF Migration保证数据库能够与代码同步不过操作的时候需要极为小心务必要检查生成的更新数据库代码直接连接生产数据库 需要注意的事项 从一开始就使用Migration任何时候都不要使用Context.Database.EnsureCreated或者EnsureDeleted语句。使用Add-migration之后不要删除生成的Migration文件这些文件记录了数据结构的变化历史。并不是所有的变化都能自动识别比如“修改表列名称大小写”这种情况很多时候生成的数据是执行删除然后再新建和我们重命名的初衷相去甚远。因此要特别检查migrationBuilder.Drop相关的页面。 使用Scaffold 如果一开始就没有使用migration进行同步的话那么使用EF Core将无法直接更新我们需要变通一下 逆向数据库到模型 首先需要数据库的数据结构逆向到模型我们使用Scaffold就可以了详细文档就可以查看这里需要注意的是我们的场景下已经有修改好的DataContext与Model在进行scaffold的过程中一定要指定outputdir和context不要和当前的文件冲突。 根据自己的喜好选择是否采用-DataAnnotations另外也可以使用-table指定需要修改的表没有被指定的表将保持原样。默认EF Core会按照自己的命名规则重新命名如果你想保留自己的套路那么使用-UseDatabaseNames参数。 Add-Migration 输出的模型我指定放在Models文件夹原来的Models文件夹我改成了Models1并且更换了命名空间以保证项目现在能够正常编译。 导出的模型与DbConextModels.Models命名空间Models文件夹新模型与DbConextModels命名空间Models1文件夹 接下来运行Add-Migration。 add-migration initialcreate -context exportedContext这样会在Migrations文件夹下面生成一个snapshot和一个migration文件。snapshot是当前数据库的跟踪另外一个是运用update-database时系统会执行的操作。里面有一个Up()和一个Down()方法Up是执行更新时EF对数据库的操作Down是回滚当前更改。由于这是第一次执行add-migrationEF Core会认为数据库现在还是空的因此两个方法都有大量的语句我们删除所有create和drop相关的语句我这边是全部删除了只留下空方法。 应用迁移同步 前面准备工作已经到位了这一步将直接操作数据库了。使用update-database将当前的migration更新到数据库由于我们现在的数据结构和生产数据库的数据结构一模一样实际上我们不需要执行什么操作删除了Up、Down内部的代码执行Update-Database只是让EF Core将Models和生产数据库建立联系。 我理解只是添加__EFMigrationsHistory中的记录以便EF Core后续追踪。 修改模型内容 将Models1中的文件覆盖Models中的文件由于类型命名的差异可能会提示一些错误按照自己的习惯修改就好了。接下来是循序渐进一点点修改模型并经常add-migration观察生成的语句是否正常。 由于我使用了Identity在数据中有对应的AspNet开头的表这些表我并不在本系统中使用其他系统需要用因此我删除了对应的模型、snapshot、DbContext记录运行Add-Migration生成了如下文件 protected override void Up(MigrationBuilder migrationBuilder){migrationBuilder.DropTable(name: AspNetRoleClaim);migrationBuilder.DropTable(name: AspNetUserClaim);migrationBuilder.DropTable(name: AspNetUserLogin);migrationBuilder.DropTable(name: AspNetUserRoles);migrationBuilder.DropTable(name: AspNetUserToken);migrationBuilder.DropTable(name: AspNetRole);migrationBuilder.DropTable(name: AspNetUser);}说明现在已经能够正常跟踪我们的修改了不过我这里需要保留对应的表因此删除up与down的所有内容。 注意以下几点 更新模型名称 如果使用fluentAPI那么模型对应的表名称会直接在fluentAPI中直接指定只修改模型的名称没有任何效果。修改的话可以修改对应的fluentAPI或者换用Annotation 提示找不到constraint 对于修改主键、索引等内容的情况如果不是通过EF Core建立的数据库那么命名规则可能不一样。对于postgresql数据库可以用这个查询名称然后修改对应的migration文件内容即可。 SELECT * FROM pg_CONSTRAINT复合主键的限制 对于使用两列或者以上列作为复合主键的情况使用EnsureCreated方法是可以识别Annotation形式的主键的。 [Key] [Column(Order 1)] public string DeviceId { get; set; } [Key] [Column(Order 2)] public long Timestamp { get; set; }使用Migration的时候这种形式无法识别需要在OnModelCreating()中使用fluentAPI modelBuilder.EntityDeviceData().HasKey(w new { w.DeviceId, w.Timestamp });Command执行超时 默认Command执行的超时设置只有30s对一些大一点的表来说是不太够的。可以设置 optionsBuilder.UseNpgsql(Serverxxxxxxxxxxxxx, optopt.CommandTimeout(3000));增加命令执行的超时时间。 多个连接字符串的情况 如果程序使用了appsettings.Development.json之类的文件存储连接字符串那么需要指定环境是Production生产数据库否则可能还原到本地数据库去了。 对于nuget包管理控制台使用update-database)执行 $Env:ASPNETCORE_ENVIRONMENT Development Update-Database对于使用dotnet ef工具集的直接执行 dotnet ef database update --environment Developmentcannot be cast automatically to type 设计数据库表如果修改列的数据类型比如从varchar到integerPostgresql会提示这个问题导致无法修改。可以在migrationbuilder中使用sql按照提示添加USING x::integer解决。但是这种方法还是不太优雅手动处理Up()之后还需要处理Down()否则将无法正确还原。 可以使用分步的方法进行假设我们需要将Id从varchar改成int4。 添加一个字段temp类型为int4设置为[Key]然后删除Id字段。添加并应用迁移修改temp名称为Id添加并应用迁移 多次应用迁移 每次修改尽量少一点然后update-database这样更容易发现问题对于有 这种提示的一定要检查生成语句中Drop相关的语句。 本地数据库与生产数据库都有__EFMigrationsHistory记录相关的迁移情况。在生产与本地数据库中进行切换时不用担心顺序问题Update-Database会一个个应用迁移直到最新。 总结 使用Migration能够降低数据库同步中很多工作量合理利用可以对生产用的数据库进行热更新。 注本文在.NET 6EF Core 6下测试通过。 相关内容拓展技术前沿 近10年间甚至连传统企业都开始大面积数字化时我们发现开发内部工具的过程中大量的页面、场景、组件等在不断重复这种重复造轮子的工作浪费工程师的大量时间。 针对这类问题低代码把某些重复出现的场景、流程具象化成一个个组件、api、数据库接口避免了重复造轮子。极大的提高了程序员的生产效率。 推荐一款程序员都应该知道的软件JNPF快速开发平台。这是一个基于Java Boot/.Net Core构建的简单、跨平台快速开发框架。前后端封装了上千个常用类方便扩展集成了代码生成器支持前后端业务代码生成实现快速开发提升工作效率框架集成了表单、报表、图表、大屏等各种常用的Demo方便直接使用后端框架支持Vue2、Vue3。 体验官网https://www.jnpfsoft.com/?csdn 还没有了解低代码这项技术可以赶紧体验学习
http://www.hkea.cn/news/14376251/

相关文章:

  • 手机传奇网站模板下载网页升级紧急通知网页
  • 建设网银登录网站wordpress制作专题
  • 网站建设管理自查报告网站建设的请示报告
  • 通明建设网站外贸营销网站推广
  • 网站设计与开发怎么做seo怎么收费的
  • 网站设计 广州php做图片交互网站代码
  • 做简历的网站 知乎综合类网站怎么做
  • 学校英文版网站建设方案网站策划编辑的职责
  • 北京建网站公司推荐app官网入口
  • 平阴县网站建设网站运作流程
  • 做网站一般注册哪几类商标网页设计基础的教学目的
  • 淘宝优惠券返利网站怎么做深圳新公司注册流程及费用
  • 正定网站制作拼多多网络营销方式
  • 做网站备案要处省的电话号码北京网站设计公司兴田德润信任高
  • 网站建设基础企业信息化建设方案 网站
  • 多少钱可以做网站wordpress淘点金组件
  • 软件公司网站系统集成建设做网站需要企业
  • 网站为什么维护中网络营销总结
  • 深圳网站建设 设计贝尔展馆设计费用取费标准
  • 框架网站建设网站建设深圳哪家公司好
  • 如何做一个更新网站天津建设工程信息网网上报名
  • 有哪些做设计交易网站有哪些内容电商平台商户
  • 开一家做网站公司成本科技有限公司和商贸有限公司区别
  • 园区网站建设需求调研报告设计友好的网站
  • 建设服装网站的亮点中文域名可以做网站吗
  • 如何做一元购网站东莞网站设计哪家好
  • 网站管理助手 建设中深圳网页设计培训费用
  • 广告公司网站首页wordpress加载特效插件
  • 徐州网站排名公司设计官网页面多少钱
  • wordpress 架站 电子书瑞安建设公司网站