YAGNI和数据库创建脚本

时间:2010-06-18 13:35:59

标签: database yagni

现在,我的代码在我的主数据库访问类中创建了数据库(在SQLite数据库上只有几个CREATE查询)。这似乎是不必要的,因为我无意使用代码。如果出现问题,我只需要重新创建数据库。我应该......

  1. 保持原样,即使数据库创建代码大约是文件大小的四分之一。
  2. 将数据库创建代码移动到单独的脚本中。如果我还是需要再次运行它,我可能会手动运行它,这会让你在处理主代码时看不到它。
  3. 删除数据库创建代码并依赖修订控制,如果我发现自己再次需要它。

2 个答案:

答案 0 :(得分:3)

我认为最好保留代码。更重要的是,每次数据库架构更改时都应该维护此代码(或生成代码)。

重要的原因如下。

  1. 您可能会惊讶地发现您需要它多少次。如果您需要迁移服务器,或设置其他环境(例如TEST或DEMO),等等。
  2. 我还发现在编码时经常会引用DDL SQL,特别是如果我还没有触及系统一段时间。
  3. 您可以参考所做的决定,例如您创建的索引,唯一密钥等等。
  4. 如果您没有严格的方法,我发现随着时间的推移,数据库架构会随着时间的推移而发生变化,这可能会导致在您点击数据库之前找不到的模糊问题。更糟糕的是,如果没有规范的方法(即模式的参考定义),您可能会发现不同的数据库具有微妙的不同模式。

答案 1 :(得分:3)

  

如果事情发生的话,我只需要它   错了,我需要重新创建   数据库中。

重新创建数据库绝对不是特例。该代码是新/不同系统上部署过程的一部分,它代表了代码期望使用的数据库结构。实际上你应该有集成测试来证实这一点。使用单个数据库服务器无限期地工作,该服务器的模式是在开发期间通过手动调度的SQL语句以递增方式创建的,不是您应该依赖的东西。

但是,它应该与访问代码分开;所以选项2是正确的。然后,测试和部署可以使用单独的脚本。