You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by Apache Wiki <wi...@apache.org> on 2011/04/01 04:51:33 UTC

[Couchdb Wiki] Trivial Update of "DumpOracleDbToCouchDbPython" by newacct

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "DumpOracleDbToCouchDbPython" page has been changed by newacct.
http://wiki.apache.org/couchdb/DumpOracleDbToCouchDbPython?action=diff&rev1=11&rev2=12

--------------------------------------------------

  # indexed by, put them into the list of tuples below and let fly.
  # I store all my config stuff in an ini file locally.  you'll have to handle
  # your own connection to your db.
- # This is pretty quick-and-dirty and I don't reccomend it for any sort of
+ # This is pretty quick-and-dirty and I don't recommend it for any sort of
  # production anything at all! :-)
  # Should work for any db api 2 compliant sql database.
  # Script guaranteed 100% slower than christmas.
@@ -89, +89 @@

  
          for myunique in [ { "myunique": i } for i in self.uniques() ]:
              cursor.execute( None, myunique )
-             entry = dict( [ (k, v) for k, v in zip( header, cursor.fetchone() ) ] )
+             entry = dict( zip( header, cursor.fetchone() ) )
-             # mop up datetime objects as they occour, since json cries foul.
+             # mop up datetime objects as they occur, since json cries foul.
              # will probably need to convert to unix epochal time
-             for k in entry:
+             for k, v in entry.items():
-                 if isinstance( entry[k], datetime.datetime ):
+                 if isinstance( v, datetime.datetime ):
-                     entry[ k ] = "%s"%entry[ k ]
+                     entry[ k ] = str( v )
  
              if str( myunique[ 'myunique' ] ) not in self.db:
                  self.db[ str( myunique[ 'myunique' ] ) ] = entry
              else:
                  doc = self.db[ str( myunique[ 'myunique' ] ) ]
+                 doc.update( entry )
-                 for k in entry:
-                     doc[ k ] = entry[ k ]
                  self.db[ str( myunique[ 'myunique' ] ) ] = doc
  
          cursor.close()
@@ -154, +153 @@

  
          cursor.execute( query )
          results = dict(
+                 str( row[0] ), dict( zip( header, row ) )
-                 [ ( str( row[0] ), dict(
-                     [ (k, v) for k, v in zip( header, row ) ]
-                     ) ) for row in cursor.fetchall()
+                   for row in cursor.fetchall()
-                 ] )
+                 )
  
          # clean up any datetime fields
          for row in results:
-             for field in results[ row ]:
+             for field, value in results[ row ].items():
-                 if isinstance( results[ row ][ field ], datetime.datetime ):
+                 if isinstance( value, datetime.datetime ):
-                     results[ row ][ field ] = "%s"%results[ row ][ field ]
+                     results[ row ][ field ] = str( value )
          self.db[ self.table_name ] = results
  
          cursor.close()
@@ -212, +210 @@

          self.cursor.prepare(cmd)
          self.cursor.execute(cmd)
          while True:
-             rows = [dict([(k, v) for k, v in zip(hdr, r)])
+             rows = [dict(zip(hdr, r))
                      for r in self.cursor.fetchmany()]
              for row in rows:
                  for key in row:
                      # try to convert DATE to standard ISO format
                      if hasattr(row[key], "isoformat"):
-                         row[key] = datetime.datetime.isoformat(row[key])
+                         row[key] = row[key].isoformat()
              yield rows
  
  class CouchBlow(object):