我应该将数据库迁移到VS2012 sql服务器项目中。我已经从目标数据库导入了所有模式。种子数据将被添加到项目中的后期部署脚本中。不过,我也预见到很多脚本在开发各种增强功能时被开发人员添加。这些可以是更改模式脚本以及数据添加编辑删除脚本。并且他们都必须按照顺序运行部署后,理想情况下由脚本名称执行1.0.0.0,然后执行1.0.0.2,然后执行1.0.1.0。 SQL Server项目不允许多个部署后文件。我可以在网上找到的是如何创建项目,而没有人会谈论如何创建一个结构,以考虑开发人员在不同发布周期内所做的更改(更改脚本)。有人可以帮我吗?VS2012中的自定义脚本文件Sql服务器项目
0
A
回答
1
Schema Comparison消除了编写自己的更改脚本的需要。模式比较通过将数据库项目的模式与数据库服务器进行比较来自动为您创建alter脚本。
0
好的,这是我迄今为止所做的。
- 其次Keith的投入和创建了一个项目
- 使用架构比较处理架构基于变化
- 创建了生成操作的单一主脚本= PostDeploy
- 对于数据的脚本,创建命名为文件夹版本根据不同版本分离脚本
- 在以下语法中添加了这些脚本在Master post deploy脚本中的条目:r Folder \ MyScript.sql
这将暂时适用,但应该有一种更好的方法来确保文件夹中的自定义脚本在主部署后脚本中自动选取。有了这个解决方案,开发人员每次添加一个脚本,就必须将一个条目写入主部署脚本(:MyCustomeDataScript.sql)
我认为可能有更好的方法来做到这一点,但我我没有意识到这一点。我正在努力寻找一种方法,可以自动在主部署脚本中手动输入新脚本。
+0
您可能会考虑使用诸如Red-Gate的SQL Data Compare等产品。如果您可以在某处保留数据库w/data的“主”副本,则可以使用它来生成“种子”脚本。我不知道你需要支持多少个版本,但是如果你不支持许多版本,你可能会简化这些脚本。但是,您需要有纪律才能检入并使用这些数据插入脚本。 (不一定是坏的,因为它可以确保你在发布时不会错过,但可能会很乏味) –
相关问题
- 1. 自定义服务器脚本
- 2. PHP项目的Rails脚本/服务器
- 3. VS2012中的SQL Server项目
- 4. 获取选定的文本asp.net自定义服务器控件
- 5. Joomla自定义组件更新服务器脚本问题
- 6. ASP.NET自定义服务器控件:嵌套项目
- 7. 自定义DropDownList服务器控件回发丢失项目
- 8. 项目中的Netbeans自定义文件
- 9. 什么定义了VS2012数据库项目中脚本执行的顺序?
- 10. Opencart自定义:评分的服务器端脚本
- 11. Visual Studio SQL |服务器项目| SQL文件语法验证
- 12. 动作脚本3和自定义图像项目管理器
- 13. 在DocPad服务器上运行自定义节点脚本
- 14. C++项目文件版本中的自定义字段
- 15. 使用.net 4.5在VS2012中创建自定义STS服务
- 16. 在自定义maven插件中解密服务器条目
- 17. 自定义团队基础服务器工作项目模板
- 18. 自定义服务器控件,使用表单和脚本管理器
- 19. 在Sql Server中自定义Sql-Server脚本生成器
- 20. 在SQL 2008服务器中创建自定义SQL Server角色
- 21. 自定义AJAX服务器
- 22. 将自定义Web服务(从自定义Web服务器)添加到Visual Studio项目(Outlook Addin)
- 23. 在WCF服务库项目中使用自定义的ServiceHostFactory
- 24. 脚本来清点5年以前的文件服务器项目
- 25. .NET MVC自定义邮件服务器
- 26. 为本地项目中的SQL服务器编码
- 27. 自动将文本文件上传到MS SQL服务器
- 28. ListView控件中的自定义项目
- 29. 文本框中的sql服务器html
- 30. 手动刷新本地服务器上的项目文件? (Netbeans)
为了使用多个后期部署脚本,您需要将一个主要后期部署脚本标记为构建类型的“后期部署”,然后在该脚本中使用“:r。\ script.sql “sqlcmd语法来包含实际的脚本。但是,正如Keith所说,您应该让项目在99%的案例中处理模式更改。这就是它设计的目的。很少,您可能必须在后期部署脚本中进行模式更改,但在必要之前,我会尽量避免它。 –
是的,对部署后架构更新脚本的需求应该非常少见。你真的有这个需要吗?如果是这样,你能提供一个例子吗? –
除了模式更新之外,多个数据插入更新脚本是我的担心。随着产品功能的增加,表格的种子数据会增加。例如,如果我正在创建一个贷款管理系统,我会将一个贷款的状态(InProcess,Rejected,Granted)放在一个表中。同样,对于正在进行的每个增强/故事可能都需要一些种子数据出现在系统中。我无法理解这将如何照顾。当然,将所有这些数据放入一个部署后脚本中并不是一个好主意。 – BatNetMan