我想知道如何在开源项目中管理数据库,这些项目通常托管在CVS或SVN等存储库中。在SVN中放置代码是非常合理的,因为它允许不同的团队成员获得更新的代码片段但数据库如何?
他们的模式和内容(我假设的.sql文件)是否也放在SVN中?在这种情况下,如果我正在创建一个Web应用程序,这是否需要开发人员继续使用最新的.sql文件更新其本地数据库?
或者,它更像是拥有一个中央服务器,成员可以修改它们的软件只是通过网络连接?
我打算启动一个开源的Web应用程序项目(需要使用数据库),但对如何处理数据库管理部分感到有些困惑。
答案 0 :(得分:3)
通常,您会包含一两件事:
这两个都应该是 text 文件。如果您的数据在加载到DBMS之前需要任何特殊处理,那么也要包含一个工具。
您应该不做的一件事是在源代码管理中包含任何特定的二进制数据库文件。例如,SQLite数据库文件不合适。二进制数据库文件通常不能跨架构或版本移植。
答案 1 :(得分:1)
根据我的经验,这些类型的应用程序通常包括构建中包含的数据库设置。通常,您必须在需要的地方安装数据库,然后安装客户端。此外,通常这些数据库也是开源的,如MySQL或其他东西。
答案 2 :(得分:1)
这取决于您正在进行的项目。例如,如果所有开发人员都在一个公司的同一位置,则中央数据库服务器可能是适用的。如果开发人员分布在世界各地,那么中央数据库服务器可能是不可能的,每个开发人员都会创建自己的数据库副本以供开发。
我认为最常见的选择是每个开发人员都使用自己的数据库。
在任何情况下,您都希望在版本控制中保留架构创建和初始数据创建文件。这样,所有开发人员都可以轻松创建新数据库。