Guest User

Untitled

a guest
Jul 19th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.66 KB | None | 0 0
  1. stock_table = Table("stock_history", metadata,
  2. Column('date', sqlalchemy.types.NVARCHAR(length=255), primary_key=True),
  3. Column('product_id', sqlalchemy.types.INTEGER(), primary_key=True),
  4. Column('product_sku', sqlalchemy.types.NVARCHAR(length=255)),
  5. Column('on_hand_qty', sqlalchemy.dialects.postgresql.DOUBLE_PRECISION()),
  6. Column('available_qty', sqlalchemy.dialects.postgresql.DOUBLE_PRECISION()),
  7. Column('output_qty', sqlalchemy.dialects.postgresql.DOUBLE_PRECISION())
  8. )
  9. stock_today = pandas.read_sql_query(queryStock, odoo_engine)
  10. insert_stmt = sqlalchemy.dialects.postgresql.insert(stock_table).values(stock_today)
  11. upser_stmt = insert_stmt.on_conflict_do_update(
  12. index_elements=['date', 'product_id'],
  13. set_=stock_today.to_dict(orient='dict')
  14. )
  15.  
  16. During handling of the above exception, another exception occurred:
  17.  
  18. Traceback (most recent call last):
  19. File "pompeiiETL.py", line 15, in <module>
  20. pompeiiJobs.runStockJob(dwh_engine, odoo_prod_engine)
  21. File "/Users/alex/Development/DataLab/pompeii-datalab/pompeiiETL/jobs.py", line 54, in runStockJob
  22. print(upser_stmt)
  23. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 446, in __str__
  24. return str(self.compile())
  25. File "<string>", line 1, in <lambda>
  26. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 436, in compile
  27. return self._compiler(dialect, bind=bind, **kw)
  28. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 442, in _compiler
  29. return dialect.statement_compiler(dialect, self, **kw)
  30. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/compiler.py", line 435, in __init__
  31. Compiled.__init__(self, dialect, statement, **kwargs)
  32. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/compiler.py", line 216, in __init__
  33. self.string = self.process(self.statement, **compile_kwargs)
  34. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/compiler.py", line 242, in process
  35. return obj._compiler_dispatch(self, **kwargs)
  36. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/visitors.py", line 81, in _compiler_dispatch
  37. return meth(self, **kw)
  38. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/compiler.py", line 2041, in visit_insert
  39. insert_stmt._post_values_clause, **kw)
  40. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/compiler.py", line 242, in process
  41. return obj._compiler_dispatch(self, **kwargs)
  42. File "/Users/alex/Development/DataLab/ETLenv/lib/python3.6/site-packages/sqlalchemy/sql/visitors.py", line 79, in _compiler_dispatch
  43. raise exc.UnsupportedCompilationError(visitor, cls)
  44. sqlalchemy.exc.UnsupportedCompilationError: Compiler <sqlalchemy.sql.compiler.StrSQLCompiler object at 0x105b55be0> can't render element of type <class 'sqlalchemy.dialects.postgresql.dml.OnConflictDoUpdate'>
  45.  
  46. db_uri = make_url('your-postgres-db-uri-here')
  47. engine = create_engine(db_uri)
  48. upser_stmt.bind = engine
  49. print(upser_stmt)
  50.  
  51. insert_stmt = sqlalchemy.dialects.postgresql.insert(stock_table,
  52. bind=engine).values(stock_today)
  53. upser_stmt = insert_stmt.on_conflict_do_update(
  54. index_elements=['date', 'product_id'],
  55. set_=stock_today.to_dict(orient='dict')
  56. )
Add Comment
Please, Sign In to add comment