Cómo usar un script de importación masiva (por ejemplo, vbulletin.rb)

Estoy haciendo lo que parece ser una importación de vbulletin 4 con varios millones de publicaciones. El servidor en el que lo estoy haciendo es muy lento (los usuarios importaban a unos 50/minuto cuando me di por vencido). Los cálculos aproximados sugieren que tardará 3 meses.

Así que le daré otra oportunidad al script de importación masiva. Ejecuto los scripts de importación normales en un contenedor de producción. El mismo contenedor que estaba ejecutando alegremente el script estándar no puede acceder a la base de datos de Discourse. Pero el importador masivo quiere acceder a /var/run/postgresql/.s.PGSQL.5432 en lugar de usar las cosas que usan la producción y el script de importación normal. Así que agrego esto a web_only.yml.

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

Y ahora puedo acceder a postgres.

Pero entonces, no puedo acceder a mysql. Las mismas credenciales que funcionan en el script normal y que funcionan dentro del contenedor desde la línea de comandos de mysql no funcionan. Obtengo un acceso denegado. Agregué un puts para ver que las credenciales eran todo lo que se esperaba, y lo son, pero el código del script normal:

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

funciona bien, pero esto

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

No. He comprobado, y

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

muestran todo como se esperaba.

¿Necesito ejecutar esto en un entorno de desarrollo? (¿Por qué?)

Estoy bastante perplejo sobre cómo funciona la conexión mysql en el cliente mysql y el script de importación normal, pero no en el script masivo. El código se ve igual. No veo nada sobre mysql en los scripts base.rb.

O tal vez la máquina está embrujada.

1 me gusta