Migration Workflow Support Request

(Paul Vincent) #1

I’ve managed to migrate my users/forums from our Drupal-based site into a Development environment on OSX. I now want to either:

  1. Upload the Backup into my Production instance on Digital Ocean and restore from the UI or,
  2. Perform the same migration on the Production box, bearing in mind the site hasn’t gone live yet and I have backups.

My issue with No 1 is that although the backup file has uploaded, it’s been split into about 20 files within a tmp directory due to the size of it, and isn’t showing up in the UI. Is there a special way of restoring from a set of files, or should I just FTP the full file into the Backups folder?

With No 2, I know that’s not the ideal method, but I’ve run the migration fine on several occasions in Dev mode, but cannot work out how to do this in a production environment anyway; how is this done? I’m a Ruby Newbie, so this business of switching modes might be a simple matter I’m just not aware of.

Many thanks in advance,

(Rafael dos Santos Silva) #2

You should upload the full file, either through the interface or through SSH in the machine.

(Josh) #3

@Paul_Vincent - did you migrate from Drupal 7? Were you able to import the passwords?

I’m trying to migrate a Drupal 7 forum with about 20,000 members into Discourse but am unsure about how to handle the passwords. It would be ideal if they don’t have to reset their passwords.

(Paul Vincent) #4

Hi Josh, sorry for this much delayed reply, I’d unsubscribed myself from the forums. We didn’t import the passwords, as we used G-Suite Oauth2 for authentication on the D7 site and also now on the Discourse-based site.

This line in the import script might allow for passwords to be brought in, but I haven’t tried this myself:

  def categories_query
    @client.query("SELECT tid, name, description FROM taxonomy_term_data WHERE vid = #{VID}")

  def execute
    create_users(@client.query("SELECT uid id, name, mail email, created FROM users;")) do |row|
      {id: row['id'], username: row['name'], email: row['email'], created_at: Time.zone.at(row['created'])}

Let me know if you’ve managed to sort this out; it’s well worth migrating to Discourse from D7; our users have been very pleased!