Project management 在项目的不同阶段有不同的数据库实例吗?

Project management 在项目的不同阶段有不同的数据库实例吗?,project-management,Project Management,推荐吗?你们怎么看 或者,我们有更好的方法来管理项目的不同阶段,通过源代码控制/数据库控制来分享他们的观点吗?如果不同的阶段指的是开发阶段和生产阶段,那么无论如何都是好的。但是我不认为在开发阶段使用不同的DB实例是一种好的做法——在您的项目中有这样的理由吗?我的建议是使用与项目中的其余代码相同的SCM存储库和分支,将数据库模式定义置于源代码控制之下。这样就更容易使数据库与使用它的应用程序保持同步。应用程序查询一个不存在的表会很尴尬 由于开发通常在源代码管理的不同分支中进行(例如版本1.0维护、版

推荐吗?你们怎么看


或者,我们有更好的方法来管理项目的不同阶段,通过源代码控制/数据库控制来分享他们的观点吗?

如果不同的阶段指的是开发阶段和生产阶段,那么无论如何都是好的。但是我不认为在开发阶段使用不同的DB实例是一种好的做法——在您的项目中有这样的理由吗?

我的建议是使用与项目中的其余代码相同的SCM存储库和分支,将数据库模式定义置于源代码控制之下。这样就更容易使数据库与使用它的应用程序保持同步。应用程序查询一个不存在的表会很尴尬

由于开发通常在源代码管理的不同分支中进行(例如版本1.0维护、版本1.1开发和版本2.0早期开发),因此每个分支需要一个数据库实例。这允许您根据需要修改版本1.1和2.0的数据库设计,而不会影响版本1.0上维护工作的稳定性

对于生产和测试,您肯定需要一个单独的数据库实例。我开发了一个向用户发送通知电子邮件的应用程序。我不想让用户被我的测试实例发送的虚假电子邮件所迷惑。在我的测试数据中,我将所有的电子邮件地址更改为我自己域中的模拟地址,这样我就可以在不打扰任何人的情况下,根据需要多次验证它们是否被正确发送。如果我在测试和生产中使用相同的数据库,我就无法做到这一点

理想情况下,团队中的每个开发人员都应该有自己的环境,包括系统的所有组件(如数据库)。这样,每个开发人员都可以独立工作,能够进行更改和调用调试器等,而不会干扰团队中其他任何人的工作


另一方面,这可能并不实际。为每个开发人员设置一个完整的复制系统可能过于昂贵。将此设置工作的成本与生产率的潜在提高进行比较,因为开发人员不必彼此协调测试。

我可以将您的问题归结为最合理的含义是:项目的哪些阶段需要他们自己的共享数据库实例?标准答案(我通常同意,其他条件都相同)是开发(对于当前构建)、测试(对于region测试,结构上是静态的和可刷新的)和生产

设计开发与实施开发可能会增加更多;多种测试;等等


当然,每个开发人员都应该能够出于非共享目的克隆其中任何一个数据库。

通常我有多个数据库

  • 一个用于支持(如果有多个版本,则多个)
  • 一个用于回归测试
  • 一个用于QA的单元测试/实验
  • 一个用于开发人员的开发/实验(有时是多个实例,但我更喜欢一个——这样我们可以确保每个人都按照相同的模式编码)

我认为QA和Dev需要一个db实例,并有计划从生产中更新每个env(每周?每月?),并自动化所需的任何数据更改(电子邮件地址、更改信用卡等)@meade:是的,我同意这一点。我只是没有详细介绍这个过程,而是着重于需要不同的数据库实例这一事实。