1

我为我的 Django 站点设置了一个相当简单的设置。

  • 本地开发副本
  • 私人 BitBucket git repo 中的副本
  • 从 git 克隆到服务器
  • 将这一切联系在一起的织物文件

对于每个站点,我有两件事我不在 git 中维护:(/media/人们在实时站点中上传的内容,通常链接到数据库)和数据库(一个 sqlite3 文件)。我从 git 中排除了这个,因为我从不希望我的数据/媒体本地副本上的测试工作被上传。如果我确实需要,我会手动上传。

我对git. 我在直接本地→生产交换中使用 Bazaar,但现在中间有 BitBucket,我真的很想将它们用于异地备份。

我知道大多数人在听到人们这么说时都会畏缩,但这意味着我可以让我的客户访问 BB 回购所以如果我“被公共汽车撞到”(令人担忧的是,我的客户的话),他们有足够的访问权限来获得新服务器启动并运行。由于我自己的偏执狂,他们根本无法访问我在其他客户端之间共享的生产服务器。

我可以忍受你讨厌我问但我有三个问题:

  1. 假设我不打算听,那么在回购中以一个方向存储备份的最佳方法是什么?我可以编写备份创建脚本(创建一个新的 tar),但是我在 git 中的什么地方存储呢?

  2. 我可以避免将它们下载到我的本地分支吗?这不是世界末日,但这些已经是备份。我不需要在每个回购中都有一份副本。

  3. 如果我想轮换备份,例如 7 天,永久清理旧备份的最佳方法是什么?我收集到即使在我从实时分支中删除它们之后,git 也会自然地保留一份过时备份的副本。我需要一种方法来防止这种情况。

我愿意听取替代解决方案,但我最想知道 git 是否可以被我的邪恶命令扭曲。否则它是如此多才多艺。

4

1 回答 1

0

'1' 和 '2' 是半可解的。你用的是bitbucket,是吗?只需为备份创建一个新的存储库。问题解决了,您只需要将它克隆到您需要的地方。'3' 表明 git 可能不是您想做的正确技术。

根据定义,git 需要到达提交历史中每个文件的每个先前状态。您可以使用诸如filter-branch...之类的命令来解决它,但为什么呢?Git 竭尽全力保留过去的状态。这就是它的精神。在 git 存储库中每 7 天编写一次擦除备份的脚本比使用更适合您的问题的技术要麻烦得多。亚马逊免费套餐中的 S3 存储桶怎么样?使用正确配置的 IAM 策略为您的客户提供访问权限,整个解决方案可以以每年的一小部分价格获得。它是S3。它有 11 个完整的九。除非您的网站绝对庞大,否则您可以花很少的钱进行数月的备份。

于 2012-09-14T12:45:50.393 回答