mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-15 11:14:31 +08:00
## 背景与问题 SQL Server 的 GetCreateStatement 会返回未支持的占位注释且不返回错误,调用方会将其视为成功 DDL。 Closes #882 ## 变更点 - 原生 SQL Server DDL 不可用时返回明确、本地化的 unsupported 错误。 - 让既有 DDL fallback 使用字段和索引元数据生成可执行的 CREATE TABLE。 - 补充 SQL Server 原生错误和 fallback 控制流回归测试。 - 补齐六种语言的错误提示。 ## 影响范围 - SQL Server DDL 查看不再显示伪成功的占位注释。 - 元数据可读取时,DDL 视图将展示 fallback 生成的表定义、主键、默认值和索引。 - 若 fallback 元数据读取失败,既有 UI 将展示后端错误。 ## 验证方式 ` ext go test -tags gonavi_sqlserver_driver ./internal/db -run TestSQLServerMetadataErrorsUseCurrentLanguage -count=1 go test ./internal/app -run TestResolveCreateStatementWithFallback_SQLServerBuildsFallbackDDL -count=1 go test ./shared/i18n -run Test -count=1 ` ## 风险与回滚 未涉及数据库迁移或构建链路。没有真实 SQL Server Driver Agent 环境,真实服务端元数据兼容性仍待补充验证;如需回滚可直接回滚本 PR。