找回密码
 立即注册

QQ登录

只需一步,快速开始

tomjay1234

金牌服务用户

4

主题

15

帖子

79

积分

金牌服务用户

积分
79
tomjay1234
金牌服务用户   /  发表于:2024-10-20 14:35  /   查看:127  /  回复:8
本帖最后由 tomjay1234 于 2024-10-20 14:43 编辑

本地设计环境 Win11,设计器10.0.5,外联数据库PostgreSQL 16.4.2

服务器环境WinS 2016,活字格服务端10.0.5,外联数据库PostgreSQL 16.4.2

问题描述:
本地开发时修改了数据库表结构,有原表新增字段,也有新增的表,

发布时选择半覆盖,但半覆盖获取到的服务器数据表结构与本地完全相同没有任何差异。发布后服务器端数据库无任何改变。

经测试,不论服务器数据库如何删改,半覆盖获取到的服务器数据表结构与本地仍然完全相同。

让人费解,是Bug还是我的部署操作有问题。

求大佬解惑。

PS:因此项目并未完成,且发布有问题见贴https://gcdn.grapecity.com.cn/fo ... 18&page=2#pid843711
所以此前涉及数据库修改时一般都是直接备份bak导入,并未仔细使用半覆盖发布功能。



截图为设计器半覆盖获取的数据库表结构(完全相同),以及同时测试时服务器端实际的数据库




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

8 个回复

正序浏览
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-10-21 17:44:51
9#
分析的没问题,都写的LocalHost确实会有这种情况。
感谢您的反馈,我这会回传达给产品部门,您也可以在产品需求版块中发个帖子,我们双向推进。
回复 使用道具 举报
tomjay1234
金牌服务用户   /  发表于:2024-10-21 15:51:41
8#
Joe.xu 发表于 2024-10-21 14:30
可能确实是我没有表达清楚,半覆盖这个功能是需要获取到数据表的结构才能比对的,
所以设计器在发布的时候 ...

好的,那我明白了,就是说半覆盖这个功能是设计器的功能,由设计器直接连接两个数据库对比,生成部署SQL语句来处理,这个功能并不经过服务器上的活字格服务端。

这样的话设计器获取到本地和服务器数据结构完全相同的原因就清楚了,因为本地和服务器环境一致,设计器中填写的数据库连接字符串,和服务器管理控制台中填写数据库连接字符串是一样的,而且连接地址都是本地localhost,然后设计器在获取服务器数据库结构时,按照字符串localhost连接到了本机电脑的测试数据库,所以显示出来的结果就是本地数据库结构与服务器数据结构相同,因为都是连接到的测试数据库。这样分析应该正确吧。


那提一点优化建议,在数据合并设置窗口上方或下方可以增加一个状态显示,显示出当前连接的是哪个数据库,以便于能直观看到,防止出错。
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-10-21 14:30:25
7#
可能确实是我没有表达清楚,半覆盖这个功能是需要获取到数据表的结构才能比对的,
所以设计器在发布的时候需要既能连接上测试库,又要能连上正式库,才能使用半覆盖的功能。
您这种情况,看下是否能开放正式库的访问权限,如果由于安全因素不允许的话,
可以参考代码部署的方式,用数据库语句修改表结构,发布的时候把这个语句在正式环境也执行一下
回复 使用道具 举报
tomjay1234
金牌服务用户   /  发表于:2024-10-21 13:50:38
6#
Joe.xu 发表于 2024-10-21 13:34
这样不行的,在半覆盖的时候设计器需要能连上正式库,才能跟设计器的库做结构比对,
您这种情况需要手动在 ...

目前的问题状态,发布可以正常进行,但是数据库半覆盖有问题
回复 使用道具 举报
tomjay1234
金牌服务用户   /  发表于:2024-10-21 13:42:33
5#
Joe.xu 发表于 2024-10-21 13:34
这样不行的,在半覆盖的时候需要能连上正式库,才能跟设计器的做比对,
您这种情况需要手动在正式环境部署 ...

不懂你说的什么意思,服务器自然是可以联网啊,服务器上的数据库本身还要开放网络访问吗。依照你说的意思,设计器是与服务器上的活字格服务通信?还是直接与数据库通信啊
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-10-21 13:34:28
地板
本帖最后由 Joe.xu 于 2024-10-21 13:46 编辑

这样不行的,在半覆盖的时候设计器需要能连上正式库,才能跟设计器的库做结构比对,
您这种情况需要手动在正式环境部署在测试环境数据库结构变更语句,
回复 使用道具 举报
tomjay1234
金牌服务用户   /  发表于:2024-10-21 11:01:19
板凳
Joe.xu 发表于 2024-10-21 09:52
您好,关于半覆盖的介绍可以参考,我们从7.1支持的外联库半覆盖

设计器和服务器都是各自的本地库,服务器在云上,而且数据库本身并未开启联网
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-10-21 09:52:38
沙发
您好,关于半覆盖的介绍可以参考,我们从7.1支持的外联库半覆盖


活字格7.0 update1新功能解密:九,数据库提升-外联数据库支持半覆盖发布
https://gcdn.grapecity.com.cn/showtopic-97991-1-1.html
(出处: 葡萄城开发者社区)

半覆盖的时候,是对比设计器中的字符串和管理控制台中的连接字符串对应的数据库,
您那边是不是发布的时候把数据库改成一个了呢

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部