2009-10-26 99 views
3

我想知道数据库是如何在通常托管在像CVS或SVN等存储库中的开源项目中进行管理的。在SVN中放置代码非常合乎逻辑,因为它允许不同的团队成员获得更新的代码段,但数据库又如何?管理开源软件项目中的数据库

他们的架构和内容(我假设的.sql文件)放置在SVN内吗?在这种情况下,如果我正在创建一个Web应用程序,这是否需要开发人员继续使用最新的.sql文件更新其本地数据库?

或者,它更像是一个中央服务器,成员可以修改它们的软件并通过网络连接到网络上吗?

我打算开始一个开源Web应用程序项目(需要使用数据库),但是对于如何去做数据库管理部分有点困惑。

回答

1

根据我的经验,这些类型的应用程序通常包括构建中包含的数据库设置。通常你必须在需要的地方安装数据库,然后安装客户端。另外,通常这些数据库也是MySQL之类的开源软件。

+0

我明白了,您是否能够遇到有关此类设置的任何问题?我的意思是,因为每个人都有他/她自己的本地数据库设置和全部。 – Paul 2009-10-26 18:16:47

+0

我对这种事情唯一的负面经历是缺乏“如何做”的方向。由于缺乏文档,我花了无数个小时试图让一些开源项目正常工作。 – northpole 2009-10-26 21:17:37

+0

注意:)我只希望和祈祷队中的某个人喜欢记录哈哈。谢谢! – Paul 2009-10-29 14:27:27

3

通常,您将有一两件事情:

  • 架构创建脚本
  • 初始数据被加载到数据库

这两个应该是文本文件。如果你的数据在加载到DBMS之前需要任何特殊的处理,那么也包括一个工具。

你应该做的一件事不是做的是在源代码管理中包含任何特定的二进制数据库文件。例如,一个SQLite数据库文件将不合适。二进制数据库文件在架构或版本中通常不可移植。

+2

我个人喜欢Ruby on Rails的方式,即架构和迁移脚本随着数量的增加而保存在单独的文件中。这使得架构管理从长远来看变得更简单。 – 2009-10-26 18:13:36

+0

谢谢,我会注意到这两件事情! :) – Paul 2009-10-26 18:17:25

1

这取决于你正在做的项目。例如,如果所有开发人员都在同一个公司的同一位置,中央数据库服务器可能是应用程序。如果开发人员分布在世界各地,那么中央数据库服务器可能不存在问题,每个开发人员都会创建自己的数据库副本以供开发。

我认为最常见的选择是每个开发人员都使用他自己的数据库。

在任何情况下,您都希望将模式创建和初始数据创建文件保留在版本控制中。这样所有的开发人员都可以轻松创建一个新的数据库。

+0

我们可能会在不同的地方工作,所以我想本地数据库将是最好的选择。谢谢 :) – Paul 2009-10-26 18:19:48