上面的设置就是这个意思;让暂存服务器指向同一个存储桶非常有用,这样可以更轻松地保持它们同步。
但是,您不希望它自动进行任何备份(或删除任何备份),因此这些设置被关闭了:
同意需要为您的暂存站点关闭 CDN。我还没有自己弄过,但一旦您弄清楚如何操作,请更新/添加到帖子顶部的维基百科。
上面的设置就是这个意思;让暂存服务器指向同一个存储桶非常有用,这样可以更轻松地保持它们同步。
但是,您不希望它自动进行任何备份(或删除任何备份),因此这些设置被关闭了:
同意需要为您的暂存站点关闭 CDN。我还没有自己弄过,但一旦您弄清楚如何操作,请更新/添加到帖子顶部的维基百科。
谢谢,内森。我看到提到 S3 备份让事情变得更容易,但备份与网站资产不同,所以我不太确定。
我已经关闭了备份和电子邮件,所以那一切都很好。我会继续将暂存服务器指向现有存储桶,并确保它不使用 CDN。
共享备份非常好,因为它使将生产数据库复制到暂存环境变得容易。
我计划使用 rsync 方法 来镜像我的生产 Discourse。
我有另外几个网站与 Discourse 集成,因此让开发/测试版本的网站能够访问和交互开发/测试/预演版本的 Discourse 将是理想的。
因此,我只会在需要时开启它,并且我会定期将我的生产数据库备份恢复到我的预演环境——不是每天,可能至少一个月一次。
如果我这样做,如何在进行数据库恢复时阻止它更改某些设置? ![]()
例如,这些设置将非常有用:
有没有一种方法可以在恢复数据库备份后,在启动 Discourse 之前手动应用一些设置?还有其他想法、建议或需要注意的事项吗? ![]()
如果您将备份保留在 S3 上并通过环境变量进行配置,那么您可以轻松地启动一个可以恢复该备份的新站点。只需启动一个新的虚拟机,克隆 discourse,复制 yml,重建并恢复。您可以使用环境变量覆盖数据库中的设置,如您帖子中的引用所示。
您可以使用环境变量覆盖数据库中的设置
太棒了,听起来简直太容易了 ![]()
我错过了什么步骤吗?我很确定这在一年前左右是有效的。但现在,虽然它确实会填充,但除了“关于”类别之外,它不会添加任何主题或帖子……有什么变化吗?
如果您想要一个测试服务器来了解 Discourse 的运行情况,那么您可能想用一些假数据来查看,如果您这样做,您可以这样做:
./launcher enter app ALLOW_DEV_POPULATE=1 bundle install ALLOW_DEV_POPULATE=1 rake dev:populate这将用一些假数据填充您的论坛,以便您可以查看带有您想要的任何主题和插件的内容。如果您还没有开始您的论坛,这会让您对可能的样子有所了解。
但现在,虽然它确实填充了,但除了关于类别之外,它没有添加任何主题或帖子……有什么变化吗?
当我刚才尝试时,它创建了组和用户记录,但在创建类别时失败,并出现以下错误:
ActiveRecord::RecordInvalid: Validation failed: Category Name has already been taken (ActiveRecord::RecordInvalid)
似乎它应该足够智能,不尝试创建具有现有名称的类别。
不过,我的站点并非空站点。还有一个 dev:repopulate 任务,它首先会清除数据库。
我最终从一个旧的 Discourse 实例恢复了一个备份,我之前曾使用此方法进行填充。我不得不执行此操作,但它奏效了。
要能够删除数据库,你需要做一件事。如果你执行 db:drop rake 任务,它会告诉你需要做什么。所以我想你需要先停止 unicorn (sv stop unicorn),然后删除、创建并迁移数据库,之后再运行该任务。或者,这是我接下来会尝试的方法,但你已经有了一个解决方案……
14 篇帖子已拆分到一个新主题:将服务器更改为 2 个容器设置
我在暂存服务器上尝试填充测试数据时遇到错误:
rake aborted!
数据库命令仅在开发环境中受支持
这是在一个多站点设置中,我运行的命令是:
./launcher enter web_only
ALLOW_DEV_POPULATE=1 bundle install
RAILS_DB=instance-x ALLOW_DEV_POPULATE=1 rake dev:populate
我之前一直在使用这些命令而没有问题,但现在出现了这个错误。我可以在生产环境中设置一个环境变量来允许数据库命令吗?