您好,
我一直在开发一个自定义的导入器,以便将数据从我们的 Woltlab 论坛导入到 Discourse。我通过在我的开发机上直接运行 Discourse(不使用 Docker)来实现这一点,现在我的 script/import_scripts/ 目录下包含我的迁移代码的许多文件。目前,这些文件位于官方 Discourse GitHub 仓库的一个 fork 中。
我现在希望迁移到一个官方的、基于 Docker 的安装,但我需要我的导入器代码在新安装中可用一段时间,因为迁移需要分阶段进行。如果可能的话,我想将导入器代码保存在一个单独的仓库中,并以一种干净的方式在新安装中使用。
我对 Rails 的了解有限,所以可能遗漏了一个明显的方法。有人能给我指明方向吗?
谢谢!
Hans
3 个赞
我在 Docker 容器内更改了存储库 URL,并成功运行了我的导入器。但是,当我运行 ./launcher rebuild app 时,存储库被重置为上游。我查看了 Dockerfile,它似乎硬编码了存储库路径,但看起来基础容器不是本地构建的,因此对 Dockerfile 的更改没有产生预期的效果。有什么官方的方法可以解决这个问题吗?
我建议使用两个容器。你可以通过复制当前的 app.yml 文件(可以在 /var/discourse/containers 中找到)并将其重命名为 import.yml 来实现。然后更新 version 参数为你自定义的导入分支。
params:
version: your-branch
每次需要运行导入时,停止 app 容器,启动 import 容器,并在 import 容器中运行脚本。如果 Discourse 进行了重大更改,你可能需要将你的分支与核心的最新提交进行 rebase,并重建容器。
cd /var/discourse
./launcher enter import
# 想要切换到不同的分支?
su discourse -c 'git checkout <branch>'
# 想要拉取新代码?
su discourse -c 'git pull'
迁移完成后,停止导入容器并重新启动应用程序容器。
cd /var/discourse
./launcher stop import
./launcher start app
感谢 @gerhard 教会我这一切 
6 个赞
system
(system)
关闭
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.