freya 发表于 2021-7-21 12:11:10

一看就会,超有用活字格技能:一百一十七、什么时候应该使用覆盖服务器数据库发布?

本帖最后由 Joe.xu 于 2024-6-5 12:22 编辑

很多老同学新同学一直在发布的时候,对于什么时候勾选覆盖服务器数据库非常迷茫,以及勾选之后到底是选全覆盖,还是半覆盖模糊不清,看完本文让你完全搞清楚这些模糊点~

问题一:什么时候勾选覆盖服务器数据库



[*]首次发布
       当我们第一次发布应用的时候,服务器是没有数据库的,无论是否勾选数据库都会默认被部署到服务器。


[*]非首次发布,发布变更
因而,当我们已经发布过应用了,也就是说服务器已经有数据库了,我们又要再次发布变更,此时发布的时候就要注意了,如下所述相关内容均以此为前提。
       简单一句话总结,当你对数据表有任何变更,除了开发时无用的数据库增加的测试数据之外,均需要勾选覆盖服务器数据库。具体有哪些典型场景可参见:
      
   1)我更改(新增,删除,修改)了数据表的字段,如名称,数据类型,缺省值,必须,唯一,自动编号等等,发布时是否需要勾选覆盖服务器数据库。
          需要,只有勾选了你的变更才会发布到服务器上,外网才能生效。
         


   2)我更改(新增,删除,修改)了公式字段、统计字段等等,发布时是否需要勾选覆盖服务器数据库
          需要,只有勾选了你的变更才会发布到服务器上,外网才能生效。
         


   3)我更改了数据表中设置工作流(包括工作流中的命令等),创建记录权限,设置行权限,设置字段权限,发布时是否需要勾选覆盖服务器数据库
       需要,只有勾选了你的变更才会发布到服务器上,外网才能生效。
      

    4)我更改了数据表中日志的相关选项,发布时是否需要勾选覆盖服务器数据库
      需要,只有勾选了你的变更才会发布到服务器上,外网才能生效
      
   

   5)我在设计器中修改了用户自定义属性,想在服务器用户信息视图中使用
      需要,如果对设计器中增加或者修改了用户自定义属性,此时用户信息视图会变更,需要半覆盖才能发布到服务器上

问题二:全覆盖与半覆盖的区别


[*]全覆盖:设计器的表结构和数据完全覆盖服务端
      通过官方描述可以看到是将设计器的两部分覆盖到了服务端:
       1)表结构覆盖(上述描述的场景均可以看作表结构的变更)
       2)设计器的表中的数据,覆盖了服务端中表的数据
    注意:全覆盖会将当前的数据表中的数据直接覆盖掉外网数据,举个例子,假如你之前发布了外网,已经有正式用户开始使用并且创建了表中的记录,如果此时你勾选了全覆盖,那么所有外网正式数据会被清空,被替换为你当前设计器的数据,所以操作之前请三思哦~~


[*]半覆盖:用设计器的表结构覆盖服务器表结构,保留服务器端数据。
       通过官方描述可以看到只覆盖了服务器的表结构(上述描述的场景均可以看作表结构的变更)。选用此种方式,已经发布外网的服务端的数据是不会发生改变的。






      




Syl 发表于 2021-7-21 13:59:38

既然大部分时候都需要覆盖,为啥不默认

phoben 发表于 2021-7-21 16:09:15

修改工作流和权限,应该不需要覆盖

Simon.hu 发表于 2021-7-21 16:49:17

这个不是大部分需要覆盖的
很多的时候,我们只是对页面做了一些微调,不涉及修改数据库结构,此时是不需要覆盖发布的
页: [1]
查看完整版本: 一看就会,超有用活字格技能:一百一十七、什么时候应该使用覆盖服务器数据库发布?