我想像以前一样使用git部署django项目,但这一次还需要将生产文件(如上载的文件、sql db等)放在存储库的某个位置,以便您可以在本地轻松地处理与服务器上相同的数据;我的想法是有三个分支:
对我来说,问题是:如何在不改变/破坏任何生产数据的情况下,将主版中所做的更改合并到生产分支中?
是否有一种有选择地进行合并的方法(例如不接触媒体/上传中的文件),或者做某种“分支选择性跟踪”或任何其他的可能性来处理这个问题?
另一方面,我还需要能够从生产中提取完整的数据,可以轻松地从服务器上使用来进行一些调试,例如.(我现在不再考虑数据库方案的变化,因为它们可以手动或单独完成)
发布于 2010-06-25 06:52:55
我被您的服务器名称弄糊涂了,我更习惯于:生产、分期、开发。
您可能应该将数据库转储为sql代码,或者以任何方式输出数据,然后将其传输给您的主程序(开发?)服务器。您可以通过在生产时将其上传到git存储库,并在开发时将其拖到git存储库。交换矩阵会让这一切变得很简单。
但是将数据放入git存储库可能不是一个好主意,我还没有尝试合并数据库转储,所以我不太确定。你在说多少数据?git是快速的,但是合并和提交大型数据库转储可能是一个痛苦的过程。
我们倾向于在本地机器上有小型的测试数据库(可以擦除),并且在生产服务器旁边运行一个具有独立DB的暂存服务器。
当底层django模型发生变化时,我们将在我们的暂存和生产服务器上使用南迁移到新的数据库。
上传的文件,您可能应该使用Fabric tar,然后下载到您的机器进行分析,但同样,很多工作可以在暂存服务器上完成,而不必将所有内容传输到本地机器。
如果仍然希望向git存储库添加静态内容,只需将静态文件添加到子目录中即可。然后,您可以将您的文件服务器设置为直接从该子目录提供服务,或者如果感觉太不安全,则将git拉到其他位置,然后将文件复制到/var/www-静态/ with Fabric。
https://stackoverflow.com/questions/3113064
复制相似问题