现在,我有在我的主数据库访问类中创建数据库的代码(只是 SQLite 数据库上的几个 CREATE 查询)。这似乎没有必要,因为我无意使用该代码。如果出现问题并且我需要重新创建数据库,我只需要它。我是不是该...
- 保持原样,即使数据库创建代码大约是我文件大小的四分之一。
- 将数据库创建代码移动到单独的脚本中。如果我无论如何都需要再次运行它,我很可能会手动运行它,这会在处理主代码时让它看不见。
- 如果我发现自己再次需要它,请删除数据库创建代码并依靠修订控制。
我认为最好保留代码。更重要的是,您应该在每次数据库架构更改时维护(或生成)此代码。
这很重要,原因如下。
如果您对此没有规范的方法,我发现数据库模式会随着时间的推移而漂移,因为进行了临时更改,这可能会导致在您访问数据库之前无法发现的模糊问题。更糟糕的是,如果没有规范的方法(即模式的参考定义),您可能会发现不同的数据库具有细微的不同模式。
如果出现问题并且我需要重新创建数据库,我只需要它。
重新创建数据库绝对不是例外情况。该代码是您在新/不同系统上部署过程的一部分,它代表您的代码期望使用的数据库结构。您实际上应该有确认这一点的集成测试。无限期地使用单个数据库服务器,其架构是在开发过程中通过手动分派的 SQL 语句增量创建的,这不是您应该依赖的。
但是是的,它应该与访问代码分开;所以选项2是正确的。然后可以将单独的脚本用于测试以及部署。