如何处理新的数据库版本? (不是代码优先)

时间:2017-11-13 17:30:10

标签: c# database winforms entity-framework sqlite

我正在使用C# winforms应用,并且我使用SQLite访问了Entity Framework数据库。我即将发布该软件的v1.0。

我的问题是:当我开发v1.1时,我可能需要向数据库添加新字段。当然,我希望用户能够从v1.0复制他们的数据,但是如果他们只是复制了数据库文件,EF肯定会在尝试访问不包含的新字段时发出异常# 39; t存在。

我是否必须从v1.0'创建一个'导入数据库?从旧数据库复制数据并插入新数据库的函数?我觉得这需要太长时间。我是否可以使用EF或其他方式创建一个直接修改旧数据库的函数?

1 个答案:

答案 0 :(得分:1)

通常,我这样做的方式......

  1. 创建现有数据库的副本。将其设为“dev”数据库
  2. 根据需要更改数据库并使用此“dev”数据库完成程序的1.1版。
  3. 准备就绪后,使用数据库差异工具(例如SqlDiffSQL Compare)创建差异脚本。
  4. 备份您的实时数据库。
  5. 针对您的实时数据库运行这些差异脚本。这应该将您的新字段,表格,视图等添加到实时数据库中。
  6. 你很高兴