text: Title: Migration to MySQL can silently fail due to mysqlimport being run via os.system()
  Body: ETLAlchemySource (INFO) - 
          *************************
          *** Total Tables: 1 ***
          *************************
          
  ETLAlchemySource (INFO) - Reading Table Schema 'xxx_stat'...
  ETLAlchemySource (INFO) - Loaded indexes and FKs for table 'xxx_stat'
  ETLAlchemySource (INFO) - Building query to fetch all rows from xxx_stat
  ETLAlchemySource (INFO) - Done. (4 total rows)
  ETLAlchemySource (INFO) - Loading all rows into memory...
  ETLAlchemySource (INFO) - Done
  ETLAlchemySource (INFO) - (xxx_stat) VARCHAR
  ETLAlchemySource (INFO) - Bases: ['STRING']
  ETLAlchemySource (INFO) - Converting to -> VARCHAR(2 (maxsize: 1)
  ETLAlchemySource (INFO) - Checking column for elimination status...
  ETLAlchemySource (INFO) - (xxx_desc) VARCHAR
  ETLAlchemySource (INFO) - Bases: ['STRING']
  ETLAlchemySource (INFO) - Converting to -> VARCHAR(8 (maxsize: 8)
  ETLAlchemySource (INFO) - Checking column for elimination status...
  ETLAlchemySource (WARNING) - Table '{0}' already exists - not creating table, reflecting to get new changes instead..
  ETLAlchemySource (INFO) - Transforming & Dumping 4 total rows from table 'xxx_stat' into 'C:\Users\busenta\Documents/xxx_stat.sql'.
  ETLAlchemySource (INFO) -  (xxx_stat) -- Transforming rows: 0 -> 4...(4 Total)
  ETLAlchemySource (INFO) -  (xxx_stat) -- Dumping rows: 0 -> 4 to 'xxx_stat.sql'...(4 Total)[Table 0/1]
  ETLAlchemySource (INFO) - Gathering unique columns for upsert.
  ETLAlchemySource (INFO) - Unique columns are '[Column('xxx_stat', VARCHAR(length=2), table=<xxx_stat>, primary_key=True, nullable=False)]'
  ETLAlchemySource (INFO) - Creating 'upsert' statements for '4' rows, and dumping to 'xxx_stat.sql'.
  ---------------------------------------------------------------------------
  TypeError                                 Traceback (most recent call last)
  <ipython-input-11-59b264de97c8> in <module>()
        8 
        9 mysql.addSource(ora)
  ---> 10 mysql.migrate()
  
  C:\Users\me\AppData\Local\Continuum\Anaconda3\envs\py27\lib\site-packages\etlalchemy\ETLAlchemyTarget.pyc in migrate(self, migrate_schema, migrate_data, migrate_fks, migrate_indexes)
       84                     str(self.conn_string) + "'")
       85             source.migrate(self.conn_string, migrate_schema=migrate_schema,
  ---> 86                            migrate_data=migrate_data)
       87             if migrate_indexes:
       88                 source.add_indexes(self.conn_string)
  
  C:\Users\me\AppData\Local\Continuum\Anaconda3\envs\py27\lib\site-packages\etlalchemy\ETLAlchemySource.pyc in migrate(self, destination_database_url, migrate_data, migrate_schema)
     1117                             self.dump_data(
     1118                                 T_dst_exists, T, raw_rows[startRow:endRow],
  -> 1119                                 pks, Session)
     1120                             del raw_rows[startRow:endRow]
     1121 
  
  C:\Users\me\AppData\Local\Continuum\Anaconda3\envs\py27\lib\site-packages\etlalchemy\ETLAlchemySource.pyc in dump_data(self, T_dst_exists, T, raw_rows, pks, sessionMaker)
      815                 row = raw_rows[r]
      816                 for pk in pks:
  --> 817                     uid += str(row[self.current_ordered_table_columns[pk]])
      818                 if upsertDict.get(uid):
      819                     with open(data_file_path, "a+") as fp:
  
  TypeError: list indices must be integers, not unicode
  
  <bountysource-plugin>
  ---
  Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/38900896-migration-to-mysql-can-silently-fail-due-to-mysqlimport-being-run-via-os-system?utm_campaign=plugin&utm_content=tracker%2F41641218&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F41641218&utm_medium=issues&utm_source=github).
  </bountysource-plugin>