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