我正在处理的产品的部分安装例程安装了数据库更新实用程序。该实用程序检查用户数据库的当前版本,并(如有必要)执行一系列将数据库升级到当前版本的SQL语句。
此例程的两个主要特征:
目标是使最终用户尽可能简化设置/数据库例程(目标受众是非技术性的)。但是,我发现在某些情况下,这两个特征是不一致的。例如,我想为我的一个表添加一个唯一索引 - 但现有数据可能已经破坏了这个规则。我可以:
这两个选项听起来都不吸引我。我可以妥协,而不是创建一个独特的索引,但那会很糟糕。我想知道其他人在这种情况下做了什么?
答案 0 :(得分:1)
从Red-Gate查看SQL Packager。我没有亲自使用它,但是这些人总体上做了很好的工具,这似乎可以做你想要的。它让你修改脚本来自定义安装: http://www.red-gate.com/products/SQL_Packager/index.htm
答案 1 :(得分:0)
您永远不会丢弃用户数据。一种可能的选择是尝试创建唯一索引。如果索引创建失败,让他们知道它失败了,告诉他们需要研究什么,并为他们提供一个他们可以运行的脚本,如果他们发现他们有一个他们选择修复的数据错误。