3

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

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

2 回答 2

3

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

这很重要,原因如下。

  1. 您可能会惊讶于您需要它的次数。如果您需要迁移您的服务器,或者设置另一个环境(例如 TEST 或 DEMO)等等。
  2. 我还发现我在编码时经常提到 DDL SQL,尤其是在我有一段时间没有接触系统的情况下。
  3. 您对所做的决定有一个参考,例如您创建的索引、唯一键等。

如果您对此没有规范的方法,我发现数据库模式会随着时间的推移而漂移,因为进行了临时更改,这可能会导致在您访问数据库之前无法发现的模糊问题。更糟糕的是,如果没有规范的方法(即模式的参考定义),您可能会发现不同的数据库具有细微的不同模式。

于 2010-06-18T13:45:56.363 回答
3

如果出现问题并且我需要重新创建数据库,我只需要它。

重新创建数据库绝对不是例外情况。该代码是您在新/不同系统上部署过程的一部分,它代表您的代码期望使用的数据库结构。您实际上应该有确认这一点的集成测试。无限期地使用单个数据库服务器,其架构是在开发过程中通过手动分派的 SQL 语句增量创建的,这不是您应该依赖的。

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

于 2010-06-18T13:47:14.097 回答