Как использовать скрипт массового импорта (например, vbulletin.rb)

Я пытаюсь импортировать данные из vBulletin 4 с миллионами постов. Сервер, на котором я это делаю, работает очень медленно (пользователи импортировали примерно 50 постов в минуту, когда я остановился). Грубый подсчет показывает, что процесс займет около 3 месяцев.

Поэтому я решил еще раз попробовать скрипт массовой импорта. Я запускаю обычные скрипты импорта в контейнере production. Тот же контейнер, который без проблем выполнял стандартный скрипт, не может получить доступ к базе данных Discourse. Однако импортер массовой загрузки пытается получить доступ к /var/run/postgresql/.s.PGSQL.5432, а не использовать настройки, которые применяются в production и обычным скриптом импорта. Поэтому я добавил следующее в web_only.yml:

  - volume:
      host: /var/discourse/shared/data/postgres_run
      guest: /var/run/postgresql

Теперь у меня есть доступ к PostgreSQL.

Но затем я потерял доступ к MySQL. Те же учетные данные, которые работают в обычном скрипте и внутри контейнера через командную строку mysql, теперь не работают. Я получаю ошибку «access denied». Я добавил puts, чтобы убедиться, что все учетные данные присутствуют и корректны, и они есть, но код из обычного скрипта:

    @client =
      Mysql2::Client.new(host: DB_HOST, username: DB_USER, password: DB_PW, database: DB_NAME)

работает отлично, а этот:

      @client =
        Mysql2::Client.new(
          host: host,
          username: username,
          password: password,
          database: database,
          reconnect: true,
        )

— нет. Я проверил, и вывод:

    puts "#{username}:#{password}@#{host}/#{database}"
    puts "PASSWORD: #{password.inspect}"

показывает всё как ожидается.

Мне нужно запускать это в среде разработки? (Почему?)

Я в тупике: как соединение с MySQL работает в клиенте MySQL и в обычном скрипте импорта, но не в скрипте массовой загрузки. Код выглядит одинаково. В скриптах base.rb я ничего не вижу, связанного с MySQL.

Или, возможно, машина проклята.

1 лайк