在源代码管理中管理我的数据库

2024-05-10

由于我正在处理一个新的数据库项目(在 VS2008 中),而且我从未从头开始开发数据库,​​因此我立即开始研究如何在源代码管理(在本例中为 Subversion)中管理数据库。

我找到了一些关于SO的信息,包括这篇文章:保持多个环境中的开发数据库同步 https://stackoverflow.com/questions/40957/keeping-development-databases-in-multiple-environments-in-sync. 特别是其中一个答案 https://stackoverflow.com/questions/40957/keeping-development-databases-in-multiple-environments-in-sync/41217#41217指向了一些链接,所有这些链接都有很好的、有用的信息。

我正在读一本系列帖子 http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx作者:K. Scott Allen,描述了他如何管理数据库更改。从我的阅读来看(请原谅我的问题的愚蠢),似乎数据库本身从未被签入存储库。相反,可以构建数据库的脚本以及测试数据(也由脚本填充)被签入存储库。最终,这意味着,当开发人员测试他或她的应用程序时,将运行这些作为构建过程一部分的脚本。这确保了数据库是最新的,但也可以在每个开发人员的计算机上本地运行。

这对我来说很有意义(如果我确实正确地阅读了的话)。但是,如果我遗漏了什么,我将不胜感激纠正或额外指导。另外,我想问的另一个问题是——这是否也意味着我应该NOT签入mdf or ldf从 Visual Studio 创建的文件?

感谢您的任何帮助和额外的见解。一直很赞赏。


这是正确的,您应该签入脚本而不是数据库文件本身。

我不喜欢根据测试数据进行构建,除非数据本身会模仿生产中数据的大小(或者在新数据库的情况下,旨在具有的数据大小)。为什么?因为针对具有 100 条记录的表编写代码并不能告诉您当您有 10,000,000 条记录时它是否会及时运行。我有太多糟糕的设计选择,这些选择是由那些认为小数据集适合开发的人做出的。

在这里,我们不允许开发人员在其设备上拥有单独的数据库(这通常会由于不是连接到 SAN 的服务器而限制数据库的大小),相反,他们必须针对定期刷新的开发数据库进行工作prod(然后运行所有新的开发脚本)以保持数据正确的大小。我认为你的开发数据库环境与产品尽可能匹配是很重要的,包括设备配置、数据库大小等。没有什么比花费很长时间开发一些在产品上根本无法工作或必须在产品上工作的东西更令人沮丧的了。立即删除,因为它使系统速度减慢太多。

现在从我的肥皂盒上跳下来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在源代码管理中管理我的数据库 的相关文章

  • 更改 NHibernate Session.Save 命令超时

    我们有几个长时间运行的后端进程 其运行时间超过默认的 30 秒 我们的NHibernate版本是2 0 1 4000 Spring NET是1 2 0 20313 NHibernate 通过 Spring NET 进行配置
  • 如何查看Pocketsphinx词典中是否存在该单词?

    我只是想看看字典文件中是否存在字符串 字典文件位于问题底部 我想检查语音识别器是否可以识别单词 例如 识别器将无法识别字符串ahdfojakdlfafiop 因为字典中没有定义 所以 我可以检查某个单词是否在 pocktsphinx 词典中
  • 即使将“enable_seqscan”设置为关闭后,也未使用数组列上的 GIN 索引?

    根据推荐this https stackoverflow com questions 4058731 can postgresql index array columns comment10357041 4059785评论 我建立了一个 i
  • 如何在数据库中存储年月?

    是否有在数据库中存储年份和月份的标准方法 我需要根据月份和年份制作一些报告 我无法使用日期和函数实时提取月份 因为表很大 所以我需要预处理 我会和 Michael 的建议是什么 https stackoverflow com a 81694
  • Oracle 数据库 12c 尝试连​​接时出错:网络适配器无法建立连接

    我第一次安装Oracle数据库12c 我正确地遵循了所有步骤并将其安装在 Windows 7 64 位上 但是当我单击 SQL Developer 并尝试创建新连接时 我输入了用户名和密码等信息 最后单击 测试 按钮 我得到了这个错误消息
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • *.tlb 文件在运行时使用过吗?

    我正在开发一个通过 COM 互操作公开一些 NET API 的产品 作为构建的一部分 我们为所有此类程序集生成 tlb 文件 并将它们作为单独 SDK 包的一部分提供 我们的客户可以在我们的产品之上安装 SDK 并创建使用我们的 COM A
  • 如何在asp.net中按下按钮后刷新Gridview

    我正在尝试制作一个简单的图书馆数据库 我在网格视图中列出搜索结果 然后有一个文本框和一个按钮 用户输入 isbn 并单击贷款按钮 然后 如果有足够数量的物品 itemNumber gt 0 则由用户借出 这是用户界面的屏幕截图 我的问题是
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • 实体框架未正确修改或删除子项

    我正在尝试保存Firm包含地址和网站的对象 我开发了在 Angular 7 中使用反应式表单在 UI 中添加和删除地址控件的功能 Firm对象 它正在为地址和网站创建附加条目 而不是将其视为现有记录 因此 如果我从 UI 中删除网站和地址
  • 在 MySQL 数据库上使用版本控制 (Git)

    我是一名 WordPress 设计师 开发人员 越来越多地使用版本控制 特别是 Git 尽管我确实在某些项目中使用 SVN 我目前正在使用 Beanstalk 作为我的远程仓库 将所有 WordPress 文件添加到我的存储库中是没有问题的
  • 是否需要连续编号?

    我正在开发一个 winform NET 应用程序 其中包括订单 发票 服务订单 票务等 这些实体在对其 ID 进行编号时是否必须按顺序排列 国际海事组织没有 以一个订单为例 它只有通过业务层才有效 在此过程中 可能已经创建了另一个订单 批准
  • 使用 WPF 网络浏览器以及带有斜体标签和阿拉伯文本的 HTML 时出现奇怪的字符

    我无法弄清楚这个 但我在下面做了一个简单的演示 当在 IE 或 Edge 中查看此页面时 它会正确呈现 我尝试过不同的编码 如 utf 16 Windows 1252 但没有成功 对我来说 看起来像是 WebBrowser 控件的问题 有人
  • 无法加载文件或程序集“Newtonsoft.Json,Version=7.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”或其依赖项之一

    这个错误让我发疯 我安装了SendGrid我的类库之一中的 NuGet 包名为基础服务 它依赖于Newtonsoft Json v7 0 1 因此它将其安装在我的包文件夹中并引用它 在类库中 我有这个绑定重定向
  • 使用.NET 访问Windows 注册表?

    我发现一个奇怪的行为 NET http en wikipedia org wiki NET Framework模块访问Windows注册表 http en wikipedia org wiki Windows Registry使用Regis
  • 内存高效的大型数据集流式传输到 S3

    我正在尝试使用 SQL alchemy 复制 S3 大型数据集 大于 RAM 我的限制是 我需要使用 sqlalchemy 我需要将内存压力保持在最低水平 我不想使用本地 filsystem 作为中间步骤将数据发送到 s3 我只想通过管道将
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • 通过 Tab 键浏览 XML 文档字段

    In VB NET you can move through the fields in the XML member documentation with the Tab key 这在 C 中不起作用 还有其他方法吗 除了用鼠标将光标放在
  • INotifyPropertyChanged 和 propertyName

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan

随机推荐