【问题标题】:Apostrophe CMS db migrations撇号 CMS 数据库迁移
【发布时间】:2019-02-10 03:06:35
【问题描述】:

将 db 从 dev 部署到 prod 并在 prod 中进行一些更改后将其拉回的正确方法是什么?现在我只是将mongo转储保留在存储库中,但我认为应该有更正确的方法。

【问题讨论】:

    标签: apostrophe-cms


    【解决方案1】:

    复制数据库不是官方的内置功能,但我了解您所说的工作流程。大约在您将站点移交给客户或将其公开发布时,您通常希望将现有数据库推送到您的生产服务器。之后,您经常需要将其复制到您的开发计算机上。

    这里有sync-upsync-down 脚本:

    https://github.com/apostrophecms/apostrophe-boilerplate/tree/master/scripts

    这些脚本假定您正在使用我们的 Stagecoach 部署系统,并且 mongodb 直接在生产服务器上运行,并且将接受来自自身(来自本地主机)的连接而无需密码。这些假设可能不适合您,因此您可能需要根据您的需要调整这些脚本。

    不过,正如您将在这些简短的脚本中看到的那样,基本答案是(对于这个故事,我使用“从生产到开发的同步”用例):

    • 使用mongodump 在远程生产服务器上制作数据库的可移植副本。 rsync 下来并使用mongorestore 来恢复它。

      ssh $remoteSSH mongodump -d $dbName -o /tmp/mongodump.$dbName &&

      rsync -av $rsyncDestination:/tmp/mongodump.$dbName/ /tmp/mongodump.$dbName &&

      ssh $remoteSSH rm -rf /tmp/mongodump.$dbName &&

      mongorestore --noIndexRestore --drop -d $dbName /tmp/mongodump.$dbName/$dbName

      • 也使用rsyncpublic/uploads 复制下来。

      rsync -av --delete $rsyncDestination:/opt/stagecoach/apps/$projectName/uploads/ ./public/uploads

    请参阅脚本了解如何初始化变量。

    如果您在 S3 中托管您的生产内容,那么您可以使用 AWS CLI,尤其是 aws s3 sync 命令。

    希望这有帮助!

    【讨论】:

    • 感谢您的回答,我将进一步研究脚本 =) 真的很喜欢撇号 btw,我认为它的所有功能和便利性都被低估了。
    • 谢谢!请点击答案上的向上箭头将其标记为已批准。
    • 我的声望不够,对不起
    • 不用担心很高兴我能帮上忙。
    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多