以编程方式从生产数据库创建空白数据库

时间:2010-11-03 09:08:46

标签: c# database unit-testing

出于软件测试的目的,我想创建一个生产数据库的无菌克隆(所有数据都被清空)。这样我每次都可以在一组已知的记录上运行我的单元测试。我希望尝试在单元测试中以编程方式执行此操作,以便我可以确保表中包含功能测试所需的测试数据。

我发现以下information与在C#中创建Access数据库有关。注意:我知道Access可能不是最好的解决方案,但它足够好!

我想知道的是,是否有一种方法可以使用TableAdapters(可能)在空白Access数据库文件中复制生产数据库模式(没有任何数据)?

3 个答案:

答案 0 :(得分:4)

这样做:

  • 创建访问文件的副本;生产 - >测试
  • 连接到测试数据库
  • 数据库中的
  • enumerate all tables
  • 为所有表格运行DELETE * FROM [table]。如果你有FK依赖项,那么运行它几次,直到没有错误 - 或者TRUNCATE [table]作为评论
  • compact数据库

答案 1 :(得分:0)

我没有太多使用Access的经验,但通常你会为此目的创建一个CREATE脚本。大多数数据库工具都具有创建此类脚本的功能。这样的脚本基本上是一组创建所有对象(例如数据库,视图)的SQL语句。

正在搜索CREATE script and Access will give you some starting points

答案 2 :(得分:0)

我对Access作为生产数据库有不好的经历。我不会推荐。要么使用SQLite,要么使用Firebird。

其次,是的,您可以使用TableAdapters。您需要为每个数据库创建两个连接。但我认为可能有工具可以做到这一点。

已编辑**

数据库有多大?对于高达4GB的版本,Oracle Express Edition可能会有所帮助。此外,从Oracle克隆到Oracle也很容易。