vBulletin 4フォーラムをDiscourseに移行する

貴重な情報をありがとうございます!:+1:t6:

もう一つ質問があります。vBulletin のユーザーを選択する SQL クエリに関するものです。

3 年前に古い phpbb フォーラムを Discourse にインポートした際、ユーザー数は約 20,000 人でした。
明らかに、ユーザーの多くは未使用のアカウントでした。この 3 年間、Discourse は非アクティブなユーザーの整理を独自に行い、現在は 3,000 人のメンバーというより現実的な数字になっています。

vBulletin から 180,000 人のユーザーをインポートし、Discourse に積極的な整理作業を依頼したところ、最終的に 27,000 人のユーザーが残りました。これは妥当な数字だと思います。

私の vBulletin においては、

  1. 他のユーザーのプロフィールに投稿されたすべてのメッセージが、Discourse に「未分類」で「タイトルなし」のトピックとしてインポートされ、単なる不要なノイズを追加していること、および
  2. のみ他のユーザーのプロフィールに投稿したユーザーの大多数がスパマーであるように思われること、
    から、インポート後の整理ではなく、インポート時に整理を行いたいと考えています。

vBulletin のデータベース全体を完全に理解しているわけではありません(ノード関連の仕組みが少し混乱します)が、少なくとも 1 つのトピックまたは返信を投稿したユーザーのみをインポートしたいと考えています。
私の理解では、トピック返信は vBulletin のユーザーテーブルにある lastpostid フィールドに値が入りますが、公開プロフィール投稿は入らないようです。

はい、私は以下の SQL クエリを編集するつもりです。

  SELECT u.userid, u.username, u.homepage, u.usertitle, u.usergroupid, u.joindate, u.email
    CASE WHEN u.scheme='blowfish:10' THEN token
         WHEN u.scheme='legacy' THEN REPLACE(token, ' ', ':')
    END AS password,
    IF(ug.title = 'Administrators', 1, 0) AS admin
    FROM #{DB_PREFIX}user u
    LEFT JOIN #{DB_PREFIX}usergroup ug ON ug.usergroupid = u.usergroupid
ORDER BY userid
   LIMIT #{BATCH_SIZE}
  OFFSET #{offset}

これを以下のように変更します:

  SELECT u.userid, u.username, u.homepage, u.usertitle, u.usergroupid, u.joindate, u.email, u.lastpost
    CASE WHEN u.scheme='blowfish:10' THEN token
         WHEN u.scheme='legacy' THEN REPLACE(token, ' ', ':')
    END AS password,
    IF(ug.title = 'Administrators', 1, 0) AS admin
    FROM #{DB_PREFIX}user u
    LEFT JOIN #{DB_PREFIX}usergroup ug ON ug.usergroupid = u.usergroupid
    WHERE u.lastpost > 0
ORDER BY userid
   LIMIT #{BATCH_SIZE}
  OFFSET #{offset}

単に WHERE u.lastpost > 0 を追加するだけです。

このクエリでカウントすると 25,000 人のユーザーとなり、前のインポートで Discourse による整理後(それでもタイトルなしトピック=元のプロフィール公開メッセージが残っていた状態)の 27,000 人のアクティブユーザーと比較して、約 2,000 人のユーザーがのみ他のユーザーのプロフィールに投稿していたことになります。これは不自然な数字ではありません。

私の推論は正しいと思いますか?WHERE u.lastpost > 0 を追加することは、有害な影響を与えることなくユーザーベースを適切に整理してくれるでしょうか?

データベースの所在地や履歴によって異なります。phpBB から vBulletin へ移行された場合や、vBulletin の更新を多数経ている場合は、この推論が誤っている可能性があります。

最も確実な方法は、lastpost を持たないユーザーが投稿したすべての投稿をリストするなど、より多くのクエリを実行して推論を検証することです。

また、「いいね」や「投票」などのプラグインを使用している場合、削除してはいけないユーザーを誤って削除してしまう可能性があります。

私の戦略は、削除や除外を非常に慎重に行うことです。ストレージは安価です。

「いいね!」 4

ありがとうございます。おっしゃる通り、慎重に進めたいと思います。:slight_smile:
Discourse に任せて、時間の経過とともに自動的に整理されるのを待ちます。

フォーラムが非常に古く、phpBB から vBulletin へ、そして Discourse へ移行された経緯があるため、多くの処理が必要でした。そのため、数日間、マイグレーションスクリプトにカスタムな投稿クリーンアップ用正規表現を追加し続けてきました。ようやく完了に近づいたと信じて、希望しています。

vBulletin については詳しくありませんが、現在作業中のフォーラムは vBulletin 5.6 を使用しており、そこに投稿された外部画像のデータベース内の記法は以下のようでした:
[IMG2=JSON]{"data-align":"none","data-size":"full","src":"https:\/\/forum.monocycle.info\/uploads\/default\/original\/2X\/3\/396192845ba93e7df2a6109a2608072efa21ee32.jpeg"}[/IMG2]
これはスクリプトで「見落とし」があったのか、それともフォーラム管理者がこれらの img2 タグを生成するプラグインを使用していたのかはわかりません。

いずれにせよ、以下のコードで修正しました:

    raw = raw.gsub(/\[img2=json\].+?(http.+?).}\[\/img2\]/i) {"\n#{$1}\n"}

一点質問ですが、Discourse は時間経過とともにインポートされた投稿を自動的に再構築(rebake)するのでしょうか?もしそうなら、最も新しい投稿から始まるのでしょうか?

「いいね!」 2

またこんにちは、
私のフォーラムには約1000個のタグがありますが、Discourseではおそらく使用しないでしょう。それに、これらのタグはおそらく非常に整理されていません。インポーターのこの行をコメントアウトしても大丈夫でしょうか?

    import_tags

それとも、何か予期せぬ問題が発生する可能性がありますか?

「いいね!」 1

コメントアウトしても安全です。

「いいね!」 2

何かをインポートした後、Sidekiq がジョブを完了するのを待たずに終了しても安全ですか?

ユーザーをインポートしましたが、現在の Sidekiq の状態は以下の通りです。

これらのタスクについて、バックアップを作成して本番フォーラムで復元した場合、どうなるでしょうか?

「いいね!」 1

いいえ、フルリベイクでこれらのジョブの大部分は再作成されますが、待機することを強くお勧めします。

それらはインポートインスタンスで引き続き実行されます。
バックアップには含まれず、本番フォーラムには転送されません。

「いいね!」 3

ありがとうございます!:+1:

バックアップの復元中にいくつかのエラーメッセージが表示されました(ただし、復元が完了しないことやフォーラムが機能しないことはありません)。これは、Sidekiq の処理が完了するのを待たなかったことが原因ではないかと考えています。

vBulletin から新しいインポートを開始しました。開発用の Discourse でグループと 3 万人のユーザーのみをインポートし、数十分待ってからバックアップを作成し、Docker ベースのインストール環境でそのバックアップを復元しました。復元は成功しましたが、ログには以下のエラーが表示されています。

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "users" does not exist LINE 1: SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1 ^ ) lib/a
10:03 pm
7
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "user_auth_tokens" does not exist LINE 1: SELECT "user_auth_tokens".* FROM "user_auth_tokens" WHERE ((...

これらのエラーは一貫性がなく、バックアップごとに異なる関係性のエラーが表示されます。
これらの原因がどこにあるのか、わかりません。:confused:

「いいね!」 1

TL;DR:それらのエラーはインポートとは一切関係ないと思います。

以前も見たことがあります。バックアップの復元中にデータベースにアクセスされているために発生する競合状態ではないかと考えられます。

これは、サーバーへの通常のトラフィックによるものか、一時停止されていない Sidekiq プロセスによるものかもしれません。どちらの場合も問題ありません。私なら、復元が完全に完了する前に発生するすべての PG エラーを完全に無視します。

「いいね!」 4

それは安心しました!

ただ、問題なのは、メッセージ自体が私にとって少し怖いだけでなく、以下の理由からも怖いのです:

  1. 導入を始めてから作成したすべての(またはほぼすべての:thinking:)バックアップで発生しており、ローカル開発環境のフォーラムでも、Docker 上のオンラインインストールでもバックアップを復元しようとすると同じです。
  2. 復元中に、Discourse のバックアップインターフェース内の復元ログが書き込まれなくなるのです。復元中は「アーカイブの解凍中」または(アップロードなしのバックアップの場合)「discourse_functions スキーマに欠落した関数を作成中…」のまま停止してしまいます。
    一見すると何かクラッシュしたように見えますが、少し待っていると、自動的にログアウトされ、再度ログインすると、これらのエラーメッセージ以外にはインポートが正常に完了しているようです。

フォーラムは動作しています(別スレッドで説明したカテゴリ編集時の 502 エラーを除く)が、数週間、数ヶ月、あるいは数年後に何らかの理由で動作しなくなることを恐れています。特に、このインポート作業には 1 ヶ月以上毎日取り組んできたので、そのような事態は絶対に避けたいのです。:sweat_smile:

とにかく、ご支援いただきありがとうございます。とても感謝しています。大規模なコミュニティのために無償でこのインポート作業に多くのエネルギーを注いでおり、質問に答えていただけることは常に心の安らぎになります。

「いいね!」 2

まず、この投稿をありがとうございます。vBulletin 3.7.x のインポートを試みました。すべての手順に従いましたが、インポートスクリプトを実行すると接続できないと表示されます。私は接続できるのにです。何かアイデアはありますか?

root@uat-app:/var/www/discourse# export DB_NAME="vb4"
root@uat-app:/var/www/discourse# export DB_USER="root"
root@uat-app:/var/www/discourse# export DB_PW="1234"
root@uat-app:/var/www/discourse# export TABLE_PREFIX="vbulletin"
root@uat-app:/var/www/discourse# export ATTACHMENT_DIR='/shared/vbulletin'
root@uat-app:/var/www/discourse# export TIMEZONE="America/Vancouver"
root@uat-app:/var/www/discourse# su discourse -c 'bundle exec ruby script/import_scripts/vbulletin.rb'
root:1234@localhost wants vb4
既存のグループを読み込み中...
既存のユーザーを読み込み中...
既存のカテゴリを読み込み中...
既存の投稿を読み込み中...
既存のトピックを読み込み中...
==================================================
ユーザー 'root'@'localhost' へのアクセスが拒否されました
データベースに接続できません。

ホスト名: localhost
ユーザー名: root
パスワード: 1234
データベース: vb4

スクリプトを編集するか、これらの環境変数を設定してください:

export DB_HOST="localhost"
export DB_NAME="vbulletin"
export DB_PW=""
export DB_USER="root"
export TABLE_PREFIX="vb_"
export ATTACHMENT_DIR '/path/to/your/attachment/folder'

終了します。

以下に示すように、同じ認証情報でデータベースにログインでき、データベース名とテーブルプレフィックスも検証済みです。

root@uat-app:/var/www/discourse# mysql -uroot -p1234 -hlocalhost
MariaDB モニターへようこそ。コマンドは ; または \g で終了します。
あなたの MariaDB 接続 ID は 70 です
サーバーバージョン: 10.3.25-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab およびその他。

'help;' または '\h' でヘルプを表示します。現在の入力文をクリアするには '\c' を入力してください。

MariaDB [(none)]> use vb4;
テーブルおよびカラム名の補完のためにテーブル情報を読み込んでいます
この機能をオフにすることで、-A オプションを使用してより高速に起動できます

データベースが変更されました
MariaDB [vb4]> select * from information_schema.tables where table_schema = 'vb4' and table_name = 'vbulletinpost'
    -> ;
+---------------+--------------+---------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------------+--------------------+-----------+
| TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME    | TABLE_TYPE | ENGINE | VERSION | ROW_FORMAT | TABLE_ROWS | AVG_ROW_LENGTH | DATA_LENGTH | MAX_DATA_LENGTH | INDEX_LENGTH | DATA_FREE | AUTO_INCREMENT | CREATE_TIME         | UPDATE_TIME         | CHECK_TIME          | TABLE_COLLATION   | CHECKSUM | CREATE_OPTIONS | TABLE_COMMENT | MAX_INDEX_LENGTH   | TEMPORARY |
+---------------+--------------+---------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------------+--------------------+-----------+
| def           | vb4          | vbulletinpost | BASE TABLE | MyISAM |      10 | Dynamic    |    1037509 |            356 |   370191960 | 281474976710655 |     53087232 |         0 |        1046506 | 2020-11-14 14:27:01 | 2020-11-14 14:27:28 | 2020-11-14 14:27:32 | latin1_swedish_ci |     NULL |                |               | 288230376151710720 | N         |
+---------------+--------------+---------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------------+--------------------+-----------+
1 行がセットされました (0.001 秒)

MariaDB [vb4]>

また、/admincp/avatar.php?do=storage を参照してアバターをエクスポートし、以下のように 3 つの異なるフォルダに保存しました。

/shared/vbulletin/signaturepics/
/shared/vbulletin/customprofilepics/
/shared/vbulletin/customavatars/

この場合、親フォルダを以下のように指定すればよいのでしょうか?それとも、3 つのフォルダの内容を 1 つにまとめる必要がありますか?

export ATTACHMENT_DIR='/shared/vbulletin'

「いいね!」 1

もしかして、パスワードに特殊な文字が含まれているのかもしれませんね?

「いいね!」 2

実際には、英数字以外の文字は含まれていません。とにかく、再度試してみましたが、パスワードを明示的に設定するまで動作しないことが確認できました。また、手順の更新が必要であることに気づきましたので、私の環境で動作する内容をここに記載します。

「いいね!」 1

手順の更新が必要です。2020年11月現在、私が確認した有効な手順は以下の通りです。なお、インポートには数時間かかるため、screen を使用して実行するのが望ましいです。nohup は、インポートスクリプトが各アイテムのインポート数を常に更新するため、標準出力ファイルが巨大化してしまう可能性があり、推奨されません。

vBulletin データのデータベースへのインストール

最新パッケージのダウンロード

Oracle MySQL リポジトリを明示的にリストに追加しない限り、MySQL は利用できなくなっています。MySQL は MariaDB に置き換えられています。

root@uat-app:~# apt-get update
root@uat-app:~# apt-get install libmariadb-dev
root@uat-app:~# apt-get install default-mysql-server

データベースの起動

root@uat-app:~# service mysql status
[info] MariaDB is stopped..
root@uat-app:~#
root@uat-app:~# service mysql start
[ ok ] Starting MariaDB database server: mysqld.
root@uat-app:~# service mysql status
[info] /usr/bin/mysqladmin Ver 9.1 Distrib 10.3.25-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version 10.3.25-MariaDB-0+deb10u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 4 sec

Threads: 7 Questions: 461 Slow queries: 0 Opens: 177 Flush tables: 1 Open tables: 31 Queries per second avg: 115.250.

データベース接続用 Gem のインストール

以下の通り、最新の bundle は元の手順にあるいくつかのフラグを好まないため、「deployment」モードを無効化する必要があります。

root@uat-app:~# echo "gem 'mysql2', require: false" >> /var/www/discourse/Gemfile

root@uat-app:~# echo "gem 'php_serialize', require: false" >> /var/www/discourse/Gemfile

root@uat-app:~# cd /var/www/discourse
root@uat-app:/var/www/discourse# su discourse -c 'bundle install --no-deployment --without test --without development --path vendor/bundle'
[DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set path 'vendor/bundle'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set without 'development'`, and stop using this flag
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.

If this is a development machine, remove the /var/www/discourse/Gemfile freeze by running `bundle config unset deployment`.

The dependencies in your gemfile changed

You have added to the Gemfile:
* mysql2
* php_serialize

設定の更新とインストールの再実行

CLI による確認

設定確認により、「deployment」モードに設定されていることが確認されました。

root@uat-app:/var/www/discourse# bundle config list
Settings are listed in order of priority. The top value will be used.
deployment
Set for your local app (/var/www/discourse/.bundle/config): true

jobs
Set for your local app (/var/www/discourse/.bundle/config): 4

retry
Set for your local app (/var/www/discourse/.bundle/config): 3

path
Set for your local app (/var/www/discourse/.bundle/config): "vendor/bundle"

without
Set for your local app (/var/www/discourse/.bundle/config): [:development, :test]

設定ファイルの検査による確認

以下は、設定ファイルを検査して同じ確認を行う方法です。

root@uat-app:/var/www/discourse# cat /var/www/discourse/.bundle/config
---
BUNDLE_DEPLOYMENT: "true"
BUNDLE_JOBS: "4"
BUNDLE_RETRY: "3"
BUNDLE_PATH: "vendor/bundle"
BUNDLE_WITHOUT: "development:test"

設定の更新

root@uat-app:/var/www/discourse# bundle config set path 'vendor/bundle'
Your application has set path to "vendor/bundle". This will override the global value you are currently setting
root@uat-app:/var/www/discourse# bundle config set without 'development:test'
Your application has set without to "development:test". This will override the global value you are currently setting
root@uat-app:/var/www/discourse# bundle config unset deployment

設定の再検証

root@uat-app:/var/www/discourse# bundle config list
Settings are listed in order of priority. The top value will be used.
path
Set for your local app (/var/www/discourse/.bundle/config): "vendor/bundle"
Set for the current user (/root/.bundle/config): "vendor/bundle"

without
Set for your local app (/var/www/discourse/.bundle/config): [:development, :test]
Set for the current user (/root/.bundle/config): [:development, :test]

jobs
Set for your local app (/var/www/discourse/.bundle/config): 4

retry
Set for your local app (/var/www/discourse/.bundle/config): 3

インストールの再試行

Gem のインストールを再実行し、コンテナから退出します。

root@uat-app:/var/www/discourse# su discourse -c 'bundle install'
...........
Bundle complete! 125 Gemfile dependencies, 163 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`
root@uat-app:/var/www/discourse# exit

vBulletin データ用ディレクトリの作成

ディレクトリの作成

[root@uat standalone]# pwd
/var/discourse/shared/standalone
[root@uat standalone]# mkdir vbulletin

vBulletin データベースのコピー

[root@uat standalone]# scp <login user>@<vbulletin server IP>:/home/backup/vbulletin/vbulletin-2020-11-14-03:30:01.sql.bz2 ./vbulletin/.

vBulletin データベースの解凍

[root@uat containers]# docker exec -it app bash
root@uat-app:/# cd /shared/vbulletin
root@uat-app:/shared/vbulletin# bunzip2 vbulletin-2020-11-14-03\:30\:01.sql.bz2

データソースの設定

データベース vb4 の作成

root@uat-app:/shared/vbulletin# mysql -uroot -p -e 'CREATE DATABASE vb4'
Enter password:

MariaDB への vBulletin のインポート

root@uat-app:/shared/vbulletin# mysql -uroot -p vb4 < vbulletin-2020-11-14-03\:30\:01.sql
Enter password:

プロフィールアーカイブの解凍

[root@uat vbulletin]# tar xvfz signaturepics.tar.gz
[root@uat vbulletin]# tar xvfz customavatars.tar.gz
[root@uat vbulletin]# tar xvfz customprofilepics.tar.gz

データベースルートパスワードの更新

root@uat-app:/var/www/discourse# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 77
Server version: 10.3.25-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> quit
Bye

Discourse へのインポート

データソース接続詳細の設定

[root@uat vbulletin]# export DB_NAME="vb4"
[root@uat vbulletin]# export DB_USER="root"
[root@uat vbulletin]# export DB_PW="1234"
[root@uat vbulletin]# export TABLE_PREFIX="vbulletin"
[root@uat vbulletin]# export ATTACHMENT_DIR='/shared/vbulletin'
[root@uat vbulletin]# export TIMEZONE="America/Vancouver"
[root@uat vbulletin]# cd /var/www/discourse
root@uat-app:/var/www/discourse# su discourse -c 'bundle exec ruby script/import_scripts/vbulletin.rb'
root:1234@localhost wants vb4
Loading existing groups...
Loading existing users...
Loading existing categories...
Loading existing posts...
Loading existing topics...

importing groups...
15 / 15 (100.0%) [3272 items/min] n]
importing users
117 / 11033 ( 1.1%) [145 items/min] in]
「いいね!」 4

つまり、データベースへの初期接続の問題は、ライブラリの混在が原因だったのでしょうか?

「いいね!」 2

いいえ、そうではないと思います。パスワードを明示的に変更したばかりで、実行はできました。現在はプライベートメッセージのインポートで問題が発生しています。以下のようなエラーが多数表示されています。何か原因がわかりますか?

プライベートメッセージをインポート中...
      139 / 177409 (  0.1%)  [399 件/分]  参加者の ID のいずれかが nil です -- [nil, 270]
pm-149 にターゲットがありません (a:1:{i:486;s:5:"TonyN";})
      364 / 177409 (  0.2%)  [418 件/分]  参加者の ID のいずれかが nil です -- [nil, 276]
pm-420 にターゲットがありません (a:1:{i:623;s:14:"the other side";})
      571 / 177409 (  0.3%)  [414 件/分]  参加者の ID のいずれかが nil です -- [nil, 445]
pm-702 にターゲットがありません (a:1:{i:767;s:6:"greatg";})
      572 / 177409 (  0.3%)  [414 件/分]  参加者の ID のいずれかが nil です -- [nil, 445]
      605 / 177409 (  0.3%)  [416 件/分]  参加者の ID のいずれかが nil です -- [nil, 461]
「いいね!」 1

それは、何らかの理由でそれらのユーザーがインポートされなかったため(以前はメールアドレスの欠如が原因でしたが、現在は解決されているはずです)、あるいはインポートされたユーザー名を検索するコードが何らかの理由で機能していないため(ユーザー名の大小文字の問題など)のいずれかです。

「いいね!」 3

@pfaffman はい、そのように見えますが、具体的な部分は不明な点もあります。例えば、最初の項目を見てみましょう。

  1. pm-149 とは何を意味しますか?
  2. a:1:{i:486;s:5:"TonyN";} において、テキスト「TonyN」はユーザー名のようですが、他の数字はどういう意味でしょうか?
  3. [nil, 270] はどうでしょうか?270 は何を表していますか?

何が問題なのかを理解できれば、データベースを確認してデータに問題がないか少なくとも確認できます。しかし、これらが実際に何を意味するのかはわかりません。

追伸:インポートされたすべてのフォーラムが全員に許可されていることも気づきました。つまり、モデレーターのみがアクセス可能だったフォーラムが全員に公開されるように設定されていました。これを制御する方法はありますか?

「いいね!」 1

すみません。詳しく説明できるほど記憶にありません。これ以上この件について無料で提供できるお手伝いはこれだけです。

もちろん可能です。Understanding groups and category permissions をご覧ください。

いくつかのインポーターはグループのインポートを試みますが、インポートされたカテゴリにそれらの権限を適用する方法を知っている者はほとんどいません。それらは手動で修正する必要があります。

「いいね!」 2

@titusc さんの指示に従ってデータベースのインポートを試みましたが、問題が発生しているようです…

root@DO-Discourse-app:/shared/vbulletin# mysql -uroot -p vb4 < CC12-Sat-Full-Backup.sql
Enter password: 
ERROR 1265 (01000) at line 4928: Data truncated for column 'method' at row 1
root@DO-Discourse-app:/shared/vbulletin#

どのようなエラーが検出されているか、ご提案はありますか?

(自己解決)元のデータベースにエラーがあったようです。

「いいね!」 2