代码之家  ›  专栏  ›  技术社区  ›  Instance Hunter

Yagni和数据库创建脚本

  •  3
  • Instance Hunter  · 技术社区  · 16 年前

    现在,我在我的主数据库访问类中有创建数据库的代码(只是一些在sqlite数据库上创建查询)。这似乎是不必要的,因为我不打算使用代码。如果出了问题,我只需要它,我需要重新创建数据库。I.应该…

    1. 保持原样,即使数据库创建代码大约是我文件大小的四分之一。
    2. 将数据库创建代码移动到单独的脚本。如果我需要再次运行它的话,很可能我会手动运行它,这会使它在处理主代码时失去理智。
    3. 删除数据库创建代码并依赖于修订控制,如果我发现自己再次需要它。
    2 回复  |  直到 16 年前
        1
  •  3
  •   Phil Wallach    16 年前

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

    这一点很重要,原因如下。

    1. 你可能会惊讶你有多少次需要它。如果需要迁移服务器,或者设置其他环境(例如测试或演示),等等。
    2. 我还发现在编码时,我经常提到DDLSQL,特别是如果我有一段时间没有接触过系统。
    3. 您可以参考您所做的决定,例如您创建的索引、唯一键等。

    如果您没有一个规范的方法来处理这个问题,我发现数据库模式会随着时间的推移而改变,这可能会导致一些模糊的问题,直到您访问数据库时才会发现这些问题。更糟糕的是,如果没有严格的方法(即模式的引用定义),您可能会发现不同的数据库具有细微的不同模式。

        2
  •  3
  •   Michael Borgwardt    16 年前

    如果发生什么事我就需要它 错了,我需要重新创造 数据库。

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

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