我们不托管我们的数据库。现在,一个人正在从生产服务器手动创建.bak文件。然后.bak复制到每个开发人员的电脑上。是否有更好的应用程序可以使这个过程更容易?我正在为我们的团队开发构建项目,我正在考虑将.bak文件添加到SVN中,以便每个人都有正确的本地版本?我曾尝试生成一个sql脚本,但它只有架构没有数据吗?
答案 0 :(得分:1)
如果生产服务器具有到您网站的在线连接,您可以尝试使用名为“日志传送”的方法。
这需要创建生产数据库的基线副本,然后获取在生产服务器上写入的事务日志块,并将日志块中的(包含的操作)应用于您的副本。这可确保在一定延迟后,备份数据库将与生产数据库处于相同的状态。
详细信息可在此处找到:http://msdn.microsoft.com/en-us/library/ms187103.aspx
正如你在标签中提到的SQL 2008:据我记得SQL2008有一些自动设置它。
答案 1 :(得分:1)
开发人员不能共享一个dev数据库吗?
将.bak文件添加到SVN听起来很糟糕。这将永远保留它的每个版本 - 你会更好(在大多数情况下)将它留在所有开发人员都可以看到的网络共享上并让它们复制下来。
您可能希望使用SSIS packages让开发人员制作临时的制作副本。
您可能还对Data Publishing Wizard感兴趣,这是一个开源项目,可让您使用数据编写数据库脚本。但如果开发人员需要他们自己的数据库副本,我会倾向于SSIS。
答案 2 :(得分:0)
RESTORE DATABASE [xxxdb] FROM
DISK = N'\ xxxx \ xxx \ xxx \ xxxx.bak'
WITH FILE = 1,NOUNLOAD,REPLACE,STATS = 10
GO
答案 3 :(得分:0)
从RedGate查看SQL Source Control,它可用于使架构和数据与源控件存储库保持同步(文档说支持SVN)。它支持集中部署的服务器或许多开发人员计算机上的数据库。
编写数据可能对每个人来说都不是一个有趣的时间,具体取决于有多少数据,但您也可以选择要执行的表(如查找)并使用任何更大的业务实体表填充SSIS(或用于测试的数据生成器)。