X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/141fa9f9ee971a4fe8dd7a28f7cc3eb7764fe31c..217d61aa29beaa5503618af52e2c17cd9e8acc1b:/pokedex/__init__.py diff --git a/pokedex/__init__.py b/pokedex/__init__.py index 6954149..e142ae6 100644 --- a/pokedex/__init__.py +++ b/pokedex/__init__.py @@ -104,7 +104,7 @@ def command_csvimport(engine_uri, directory='.'): try: session.add(row) session.flush() - except IntegrityError as e: + except IntegrityError, e: failed_rows.append(row) # Loop over the failed rows and keep trying to insert them. If a loop @@ -121,7 +121,7 @@ def command_csvimport(engine_uri, directory='.'): # Success! del failed_rows[i] do_another_loop = True - except IntegrityError as e: + except IntegrityError, e: pass if failed_rows: @@ -142,7 +142,8 @@ def command_csvexport(engine_uri, directory='.'): columns = [col.name for col in table.columns] writer.writerow(columns) - for row in session.query(table).all(): + primary_key = table.primary_key + for row in session.query(table).order_by(*primary_key).all(): csvs = [] for col in columns: # Convert Pythony values to something more universal @@ -186,6 +187,6 @@ def command_help(): csvexport {uri} [dir] Export data from the database given by the URI to a set of CSVs. Directory defaults to cwd. -""" +""".encode(sys.getdefaultencoding(), 'replace') sys.exit(0)