# Migração do Invision Power Board para Discourse

**URL:** <https://meta.discourse.org/t/migrating-from-invision-power-board-to-discourse/34639>\
**Category:** Product Support\
**Created:** [18 Outubro , 2015 00:03 UTC](https://meta.discourse.org/t/migrating-from-invision-power-board-to-discourse/34639 "2015-10-18T00:03:26Z")\
**Posts on this page:** 1\
**Showing post:** 30

<div class="post-metadata">

**Author:** ![pinder99](https://avatars.discourse-cdn.com/v4/letter/p/dfb087/32.png) [@pinder99](https://meta.discourse.org/u/pinder99)\
**Post date:** [15 Março , 2025 11:57 UTC](https://meta.discourse.org/t/migrating-from-invision-power-board-to-discourse/34639/30 "2025-03-15T11:57:59Z")

</div>

Olá @pfaffman, por favor, me informe se você pode dar suporte. Quero importar da v2.3.6, tenho problemas para vincular os tópicos ao `forum_id`, pois esta versão não o possui. Você pode me informar qual tabela contém o valor para vincular entre tópico e fórum?

Este é o que tenho para importar tópicos agora, ele pode importar, mas todos os tópicos vão para “não categorizado”.

```plaintext
def import_topics
  puts "\n📌 Importando Tópicos..."
  total_count = mysql_query("SELECT count(*) count FROM iBB_posts WHERE new_topic = 1;").first['count']

  batches(BATCH_SIZE) do |offset|
    discussions = mysql_query(<<-SQL
      SELECT pid as tid, topic_id, post_title as title, post as raw,
             FROM_UNIXTIME(post_date) as created_at, author_id
      FROM iBB_posts
      WHERE new_topic = 1
      ORDER BY post_date ASC
      LIMIT #{BATCH_SIZE} OFFSET #{offset};
    SQL
    ).to_a

    break if discussions.empty?

    create_posts(discussions, total: total_count, offset: offset) do |discussion|
      {
        id: "topic-#{discussion['tid']}",
        user_id: user_id_from_imported_user_id(discussion['author_id']) || Discourse::SYSTEM_USER_ID,
        title: format_title(discussion['title']), # Garante que os títulos sejam formatados corretamente
        raw: discussion['raw'],
        created_at: discussion['created_at'],
        post_number: 1
      }
    end
  end
end
def format_title(title)
  return "Tópico sem título" if title.nil? || title.strip.empty?
  CGI.unescapeHTML(title)
end
def import_replies
  puts "\n📌 Importando Respostas..."
  total_count = mysql_query("SELECT count(*) FROM iBB_posts WHERE new_topic = 0;").first['count']

  batches(BATCH_SIZE) do |offset|
    comments = mysql_query(<<-SQL
      SELECT pid, topic_id, post as raw, FROM_UNIXTIME(post_date) as created_at, author_id
      FROM iBB_posts
      WHERE new_topic = 0
      ORDER BY post_date ASC
      LIMIT #{BATCH_SIZE} OFFSET #{offset};
    SQL
    ).to_a

    break if comments.empty?

    create_posts(comments, total: total_count, offset: offset) do |comment|
      topic_id = topic_lookup_from_imported_post_id("topic-#{comment['topic_id']}")
      next unless topic_id

      {
        id: "post-#{comment['pid']}",
        topic_id: topic_id,
        user_id: user_id_from_imported_user_id(comment['author_id']) || Discourse::SYSTEM_USER_ID,
        raw: comment['raw'],
        created_at: comment['created_at']
      }
    end
  end
end

```

---

_[View the full topic](https://meta.discourse.org/t/migrating-from-invision-power-board-to-discourse/34639)._
