也试过这个:
> root@vps116136-import:/var/www/discourse/config# su discourse -c “bundle exec rake db:drop”
> exec: line 1: “bundle: command not found
也试过这个:
> root@vps116136-import:/var/www/discourse/config# su discourse -c “bundle exec rake db:drop”
> exec: line 1: “bundle: command not found
抱歉,我应该预料到这些检查。
尝试使用此环境变量运行 drop 命令:
cd /var/discourse
./launcher enter <your-container-name>
su discourse
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop
这个特定的命令之所以没有奏效,是因为您不在项目 Gemfile 所在的目录,在您的情况下是:/var/www/discourse。
快速提示:更简单的方法是拥有论坛首次启动时的备份,这样您只需在再次尝试导入之前恢复它即可,但假设您没有备份,我们就只能采取这种软重置的方法了。
仍然没有效果。
root@vps116136-import:/var/www/discourse# su discourse
discourse@vps116136-import:/var/www/discourse$ DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop
PG::InsufficientPrivilege: ERROR: must be owner of database discourse
Couldn’t drop database ‘discourse’
rake aborted!
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: must be owner of database discourse (ActiveRecord::StatementInvalid)
…
现在尝试以 root 身份操作……
不。
root@vps116136-import:/var/www/discourse# DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop
fatal: 在 ‘/var/www/discourse’ 处检测到可疑的所有权
要为此目录添加例外,请调用:git config --global --add safe.directory /var/www/discourserake 中断!
忘记我之前的指示 ![]()
docker cp 将您最新的备份复制出容器。备份位于 /shared/backups/default 内部。./launcher 的位置)中删除共享文件夹:rm -rf /var/discourse/shared./launcher rebuild <container-name> 重新构建容器。这应该能解决问题,但请小心,不要丢失您的备份。我之前一直避免建议这样做,以免您不小心删除了备份,但看来这是唯一的解决办法了。
这需要一段时间。tar.gz 文件有 15GB。
事实上,它将需要……

自从我开始以来,它已经完成了 0.5GB。
完成。
已完成。
完成。准备运行导入脚本,但是……
/var/discourse/shared/standalone/import
├── data
├── mysql
└── settings.yml
我把这个
删掉了,对吧。
是的。
我假设您在共享文件夹内为您的 mysql 容器创建了一个卷。如果是这样,很遗憾,您将不得不重新启动容器并再次恢复数据库。
附件您可以直接复制过来。
settings.yml 不应该太难重新设置。
我不确定重新创建容器是什么意思。第一次我按照这些说明将 phpbb_mysql.sql 放在 mysql 目录中。除了这个之外还需要做更多的事情吗?
附件您可以直接复制过来。
是的。除了,tar.gz 文件有 15GB,因为 phpBB /files 目录中有 45GB 的数据。您知道吗,我已经运行我的论坛 22 年了!所以是的,我会把它们复制回去。但很可能,我明天才会再处理这件事。
是的,这就是社区迁移的本质。一个好的建议是先从一个较小的样本开始,在你掌握了流程之后,你就可以进行完整的导入了。
目前正在努力使工具更灵活,并使过程不那么冗余,但这一个非常复杂的主题。
我希望你明天的运行一切顺利。
同意!但是 phpBB 并不容易缩小样本大小。我有点被我现有的情况困住了。不过,这是一个测试环境,没有什么东西是无法挽回的。
谢谢!我会在这里回复的。顺便说一句,既然我现在是 docker cp 专家了
,修改 ruby 脚本在发生类似这种情况时打印出 phpBB 的 post_id 会是一件大事吗?
8000 / 24451 ( 32.7%) [677 items/min] W, [2026-01-13T02:50:22.466363 #25640] WARN – : Bad date/time value “0000:00:00 00:00:00”: mon out of range
W, [2026-01-13T02:50:22.466500 #25640] WARN – : Bad date/time value “0000:00:00 00:00:00”: mon out of range
W, [2026-01-13T02:50:22.466600 #25640] WARN – : Bad date/time value “0000:00:00 00:00:00”: mon out of range
我还在!在重新导入之前清理一些东西,并解决一些难题。在处理下一个问题之前,我正在等待 Claude 给我点时间。但我会回来的……

好的!我没有借助 Claude 的帮助,整理好了我上一个快照(snap),并开始了导入。又遇到了一个障碍:
phpBB3 导入正在开始……
/var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:49:in
initialize': undefined method’ for nil (NoMethodError)
@site_name = import_settings["site_name"]
^^^^^^^^^^^^^
from /var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:11:in `new'
from /var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:11:in `load'
from script/import_scripts/phpbb3.rb:20:in `<module:PhpBB3>'
from script/import_scripts/phpbb3.rb:16:in `<module:ImportScripts>'
from script/import_scripts/phpbb3.rb:15:in `<main>'
算了,是我的错。settings.yml 文件坏了。抱歉,我可能明天才能处理这个问题。
你可以尝试使用 pry 调试,在代码中添加断点,以便在执行到断点时打开 pry。这可以让你获得一个交互式的命令行界面来查看数据。或者,只需在 process_post 方法中添加一个 puts row[:post_id],这样当它发出警告时,你就能看到最后一个 ID。
是的——就是这样!对你来说很简单,对我来说就不那么简单了
在我开发我的破解程序时,我确实广泛使用了 Xdebug 来调试服务器端的 PHP,但我已经到了人生的“老狗学不会新把戏”的阶段了。如果你能给我提供详细的步骤,我很乐意进行编辑——但我不会假装我能破解 ruby。至少现在还不能……
附言:Claude 将在 28 分钟后接见我,希望在克服当前的难题后能开始导入工作。
好的,导入脚本正在使用修订后的 .rb 文件运行。我明天(哈欠)再向您汇报。
糟糕。这是我在一个有很多图片的帖子中看到的内容:
在安装 MBC 之前,应安装原装主缸的推杆衬套。套件附带的衬套太小了。拆下 PS 单元的空气压力罐可以方便地安装新的刹车管路。
~~[attachment=13]
51.jpg[/attachment][attachment=12]52.jpg[/attachment][attachment=11]53.jpg[/attachment][attachment=10]54.jpg[/attachment][attachment=9]55.jpg[/attachment][attachment=8]56.jpg[/attachment][attachment=7]57.jpg[/attachment][attachment=6]58.jpg[/attachment][attachment=5]59.jpg[/attachment][attachment=4]60.jpg[/attachment][attachment=3]61.jpg[/attachment][attachment=2]62.jpg[/attachment][attachment=1]63.jpg[/attachment][attachment=0]~~64.jpg[/attachment]
这是该帖子在 phpBB 中的显示方式:
我不知怎么把我的测试环境的 Docker 实例搞砸了。我正在重新实例化它。
我不会修改导入脚本,而是会拍一个快照,然后用一个脚本进行后处理,该脚本将提取 attach_ids、文件名和评论,并尝试将它们作为标题添加到图像中(在 Claude 的一点帮助下)。我不太乐观,但我会告诉大家结果如何。
关于那些关于错误日期/时间值的警告,Claude 是这么说的:
该警告来自 EXIFR gem,它从图像文件(您的附件)中读取 EXIF 数据。它与发布日期完全无关——它与图像文件本身的元数据有关。
处理具有无效 EXIF 日期/时间元数据的附件时会出现此警告。这只是表面现象,不会影响您的导入。
正如你所想的,@pfaffman。但我很高兴现在知道了触发该警告的原因。