# phpBB3 가져오기 스크립트 개선 요청

**URL:** https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476
**Category:** Migration
**Tags:** phpbb
**Created:** [1월 14, 2026, 8:04오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476 "2026-01-14T20:04:29Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 14, 2026, 8:04오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/1 "2026-01-14T20:04:29Z")

</div>

phpBB에서는 업로드된 첨부 파일에 댓글을 추가할 수 있습니다:

 ![Screenshot 2026-01-14 145541](https://global.discourse-cdn.com/meta/original/4X/a/9/c/a9c7da505770e08b0e972908bc33a06f43c6fe6b.jpeg)

이러한 댓글은 게시물의 이미지 아래에 표시됩니다:

 ![Screenshot 2026-01-14 150018](https://global.discourse-cdn.com/meta/original/4X/d/a/0/da0a9f249fc3599a2b2ea59b4d3471e5f1319656.jpeg)  
phpBB3 가져오기 스크립트가 이러한 댓글을 가져와서 해당 이미지와 짝을 이루는 이미지의 대체 텍스트(alt text)로 지정할 수 있다면, Discourse에서 마우스를 이미지 위에 올리면 해당 텍스트가 표시되므로 유용할 것입니다.

감사합니다.  
Dan

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 14, 2026, 8:37오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/2 "2026-01-14T20:37:50Z")

</div>

아! Ruby on Rails에 대해 전혀 알지 못하며, phpBB 가져오기 스크립트에 대한 기능 추가를 요청하는 중이므로 [여기에 설명된 바와 같이](https://meta.discourse.org/t/date-time-warnings-in-phpbb3-conversion-to-discourse/393391) 추가적인 기능 개선을 요청하고 싶습니다. 스크립트가 게시물의 날짜/시간 오류를 보고할 때, 디버깅을 위해 phpBB의 post\_id도 함께 보고되면 유용할 것입니다.

감사합니다  
Dan

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [1월 14, 2026, 8:40오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/3 "2026-01-14T20:40:09Z")

</div>

> [@shortmort37](#):
>
> phpBB3 가져오기 스크립트가 이러한 주석을 가져와서 해당 이미지에 대안 텍스트(alt text)로 지정할 수 있다면 유용할 것입니다.

요청하신 내용을 어떻게 구현해야 할지 바로 명확하지 않지만, 몇 분간 살펴본 결과 만족스럽고 실현 가능한 해결책이 잘 보이지 않습니다.

업로드 기록에 캡션을 저장할 곳이 없으며, 업로드에서 역추적하는 명확한 방법도 보이지 않습니다. … 가능한 방법 중 하나는 주석을 파일명으로 입력한 뒤 나중에 다시 캡션으로 추출하는 것입니다. 네, 그게 가장 좋은 방법일 것입니다. 캡션을 파일명으로 인코딩하면 마우스를 올렸을 때(마우스오버)와 같은 상황에서 표시되게 할 수 있습니다. 원하신다면, 캡션을 포함한 파일명을 가져와서 HTML에 somehow(어떻게든) 삽입하는 등 다른 방법도 시도해 볼 수 있습니다.

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 2:58오전 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/4 "2026-01-15T02:58:08Z")

</div>

솔직히 저는 RoR이나 postgres에 대해 전혀 모릅니다. 하지만 이미지를 alt 텍스트로 마크업하면, 해당 이미지와 연관되어 postgres 데이터베이스에 저장됩니다. 임포트 스크립트에서 어떤 부분이 그 할당을 막고 있는 걸까요? 분명히 MySQL에서는 그 코멘트에 접근할 수 있습니다.

 ![Screenshot 2026-01-14 215311](https://global.discourse-cdn.com/meta/original/4X/1/3/4/13431fc98e344ef1fad099fd1d07fcb5afe70349.jpeg)

---

<div class="post-metadata">

### Author: ![italo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/italo/32/315833_2.png) [@italo](https://meta.discourse.org/u/italo)
#### Post date: [1월 15, 2026, 3:56오전 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/5 "2026-01-15T03:56:55Z")

</div>

조금 까다로워 보이지만, 이 메서드를 수정하면 성공할 수 있을 것입니다:

> <https://github.com/discourse/discourse/blob/3324fe4fef784ce7a2800ad025c85a08a35f7f45/script/import_scripts/phpbb3/support/text_processor.rb#L169>

다음과 같은 코드를:

```ruby
text.gsub!(attachment_regexp) do
        index = $1.to_i
        real_filename = $2
        unreferenced_attachments[index] = nil
        attachments.fetch(index, real_filename)
end

```

다음과 같이 변경해야 합니다:

```ruby
text.gsub!(attachment_regexp) do
        index = $1.to_i
        description = $2.strip
        unreferenced_attachments[index] = nil

        url = attachments.fetch(index, description)

        "![#{description}](#{url})"
end

```

_이것은 어디를 수정해야 하는지 보여주기 위한 테스트되지 않은 예시일 뿐입니다. 틀렸을 수도 있습니다._

시간이 나면 내일 실제 해결책이 담긴 PR을 열 수 있을 것입니다. 😄

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 3:33오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/6 "2026-01-15T15:33:51Z")

</div>

감사합니다! MIME 유형에 따라 작업을 자격 증명(qualify)하고 싶으신가요? (저는 .mp4 파일에 phpBB 주석을 첨부할 수 없었습니다. .gif 파일에는 첨부할 수 있었지만, 마우스를 올리면(hover) 표시되지 않았습니다.)

---

<div class="post-metadata">

### Author: ![italo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/italo/32/315833_2.png) [@italo](https://meta.discourse.org/u/italo)
#### Post date: [1월 15, 2026, 3:40오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/7 "2026-01-15T15:40:50Z")

</div>

> [@shortmort37](#):
>
> MIME 타입에 따라 첨부 파일을 구분하고 싶으신가요?

이 방식이 유용할 수 있지만, 저는 게시물의 원본(raw)에 주석을 직접 추가하는 새로운 방법을 작업했습니다. 이 방식이 모든 유형의 파일을 처리하는 데 더 안전하다고 생각합니다.

> **[Comparing discourse:main...italoaalves:dev/phpbb3-add-attachment-description...](https://github.com/discourse/discourse/compare/main...italoaalves:discourse:dev/phpbb3-add-attachment-description)**
>
> A platform for community discussion. Free, open, simple. - Comparing discourse:main...italoaalves:dev/phpbb3-add-attachment-description · discourse/discourse

이 변경 사항들을 사용자의 데이터셋으로 테스트해 주실 수 있을까요? 로컬에서는 테스트해 보았지만, PR을 진행하기 전에 피드백을 듣고 싶습니다.

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 4:13오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/8 "2026-01-15T16:13:18Z")

</div>

테스트를 해보고 싶은데… 테스트 환경을 초기화하고 처음부터 다시 해야 하나요? Claude.ai가 설치 과정을 안내해 주었지만, 저는 도커 초보자라 설치가 진행되는 동안에도 오류가 꽤 많았습니다.

편하게 테스트할 수 있는 방법을 알려주시면, 기꺼이 시도해 보겠습니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [1월 15, 2026, 4:23오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/9 "2026-01-15T16:23:27Z")

</div>

> [@italo](#):
>
> 댓글을 게시물의 원본(raw)에 직접 추가하는 새로운 방식을 작업했습니다.

잘하셨네요! 코드를 살펴보았지만 해당 부분을 찾을 수 없었습니다.

> [@shortmort37](#):
>
> 테스트 환경을 초기화하고 다시 실행해야 하나요?

네. 데이터베이스를 지우고 다시 실행해야 합니다. 가져오기(importer)는 이미 가져온 데이터를 건너뛰기 때문에, 테스트하려면 모든 데이터를 다시 가져와야 합니다. 그래도 작동할 것 같습니다!

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 4:32오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/10 "2026-01-15T16:32:27Z")

</div>

좋아요 - 첨부 파일과 MySQL 데이터베이스는 그대로 유지되어 있습니다. 실행하는 데 몇 시간이 걸렸지만, Claude에게 과정을 설명해 달라고 하고 결과를 보고하겠습니다.

---

<div class="post-metadata">

### Author: ![italo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/italo/32/315833_2.png) [@italo](https://meta.discourse.org/u/italo)
#### Post date: [1월 15, 2026, 4:34오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/11 "2026-01-15T16:34:16Z")

</div>

네, 도와드릴 수 있습니다. 설치를 변경할 필요는 없습니다. 가장 쉬운 방법입니다:

1. 사이트 백업을 만들어 안전한 곳에 보관하세요. 이렇게 하면 작업 내용을 잃어버리는 것을 방지할 수 있습니다.
2. 사이트를 초기화하세요:

```bash
# 사이트 컨테이너에 진입
cd /var/discourse
./launcher enter <your-container-name>

# 데이터베이스 초기화
bundle exec rake db:drop
bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake db:seed

# 컨테이너 종료
exit

# 모든 것이 제자리에 있는지 확인하기 위해 컨테이너를 다시 빌드
./launcher rebuild <your-container-name>

```

1. 새 코드로 파일을 수정하세요. CLI 텍스트 편집기를 사용하거나, 선호하는 텍스트 편집기를 통해 SSH로 컨테이너를 열 수 있습니다.
2. settings.yml을 설정하고 가져오기(importer)를 다시 실행하세요.

이전 상태로 돌아가려면 처음에 만든 백업을 복원하면 됩니다:

```bash
./launcher enter <your-container-name>
discourse enable restore
discourse restore <your-backup-filename>

```

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 4:34오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/12 "2026-01-15T16:34:28Z")

</div>

오! 그거 좋네요. 그런데 이 기회에 날짜/시간 문제가 보고될 때 처리 중인 phpBB post\_id도 함께 보고되도록 스크립트를 수정하는 게 어렵지 않을까요?

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 4:35오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/13 "2026-01-15T16:35:28Z")

</div>

쉽겠네요! 로지 🐕 와 산책하러 나온 후에 바로 시도해 볼게요.

---

<div class="post-metadata">

### Author: ![italo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/italo/32/315833_2.png) [@italo](https://meta.discourse.org/u/italo)
#### Post date: [1월 15, 2026, 4:41오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/14 "2026-01-15T16:41:46Z")

</div>

> [@pfaffman](#):
>
> 코드를 살펴봤는데 해당 부분을 찾을 수 없었습니다.

기존의 gsub를 사용하여 여기에 추가하고 있습니다:

> <https://github.com/italoaalves/discourse/blob/cf017392f378f4c6f4462adb12940afef2724bd5/script/import_scripts/phpbb3/support/text_processor.rb#L182>

확인해 주셔서 감사합니다. 덕분에 phpbb에도 존재하는 참조되지 않은 첨부 파일(unreferenced attachments)을 고려하지 않았다는 점을 깨달았습니다:

> <https://github.com/italoaalves/discourse/blob/cf017392f378f4c6f4462adb12940afef2724bd5/script/import_scripts/phpbb3/support/text_processor.rb#L192>

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 6:46오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/15 "2026-01-15T18:46:44Z")

</div>

좋아요, 백업이 진행 중입니다. 시간이 좀 걸릴 것 같습니다…

> [@italo](#):
>
> 새로운 코드로 파일들을 수정하세요. CLI 텍스트 편집기를 사용하거나, ssh로 컨테이너를 열어 가장 선호하는 텍스트 편집기에서 파일을 열 수 있습니다.

수정해야 하나요? 제 git 저장소의 파일 스크립트 경로로 `docker cp`를 실행하는 것만으로도 되지 않을까요?

---

<div class="post-metadata">

### Author: ![italo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/italo/32/315833_2.png) [@italo](https://meta.discourse.org/u/italo)
#### Post date: [1월 15, 2026, 6:48오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/16 "2026-01-15T18:48:58Z")

</div>

> [@shortmort37](#):
>
> 편집을 해야 하나요? git 저장소의 파일들을 스크립트 경로로 `docker cp` 명령을 통해 복사하는 것만으로도 되나요?

그렇게 하셔도 됩니다. 또는 `container.yml`을 제 저장소와 브랜치를 사용하도록 설정한 뒤 다시 빌드할 수도 있습니다.

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 7:37오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/17 "2026-01-15T19:37:53Z")

</div>

> [@italo](#):
>
> ```plaintext
> # 사이트 컨테이너에 진입
> cd /var/discourse
> ./launcher enter <your-container-name>
> 
> # 데이터베이스 재설정
> bundle exec rake db:drop
> 
> ```

음, 잘 안 됐네요.

[reset\_log.txt](https://meta.discourse.org/uploads/short-url/hq6HMGSjMxaeZZswNWf700Y5EQX.txt) (16.6 KB)

---

<div class="post-metadata">

### Author: ![italo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/italo/32/315833_2.png) [@italo](https://meta.discourse.org/u/italo)
#### Post date: [1월 15, 2026, 7:39오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/18 "2026-01-15T19:39:48Z")

</div>

discourse 사용자로 명령을 실행해야 할 수 있습니다:

```bash
su discourse

```

또는

```bash
su discourse -c “bundle exec rake db:drop”

```

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 7:44오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/19 "2026-01-15T19:44:05Z")

</div>

아, 실수했습니다. 초보자의 실수였네요. 스레드를 닫을 의도는 아니었고, 그냥 그 문제가 해결되었다는 걸 확인하려고 했을 뿐입니다.

"해결된 것 같다"고 했죠. 아직 db:drop이 완료되길 기다리고 있습니다. 계속 진행해야겠네요…

---

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [1월 15, 2026, 7:45오후 UTC](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476/20 "2026-01-15T19:45:51Z")

</div>

여전히 아무 반응이 없습니다.

[reset\_log2.txt|첨부파일](https://meta.discourse.org/uploads/short-url/q9gehGrBrPtFsNCbdpXio9IX3yG.txt) (1.7 KB)

[Next page](https://meta.discourse.org/t/enhancement-request-to-phpbb3-import-script/393476.md?page=2)
