ODM2 / ODM2PythonAPI

A set of Python functions that provides data read/write access to an ODM2 database by leveraging SQLAlchemy.
http://odm2.github.io/ODM2PythonAPI/
BSD 3-Clause "New" or "Revised" License
4 stars 13 forks source link

Editing individual entries from the API #155

Closed PhatWabbit closed 6 years ago

PhatWabbit commented 6 years ago

Hi there,

I want to change the VariableCode of a variable that I created a while back - is there any way to do this from the API?

Thanks, Dan W

horsburgh commented 6 years ago

@PhatWabbit - I'm not sure we built out all of the update functions on the API yet. We focused first on the read and create functions. @emiliom and @lsetiawan - do you have any additional thoughts on this?

emiliom commented 6 years ago

That's correct. The update services (https://github.com/ODM2/ODM2PythonAPI/blob/master/odm2api/services/updateService.py) have not been fleshed out, for the most part.

My suggestion would be to reuse the connection setup at the start of an odm2api session, then construct and issue a direct SQL UPDATE statement. Roughly, this would look something like this:

from odm2api.ODMconnection import dbconnection

session_factory = dbconnection.createConnection('postgresql', **db_cred)
DBSession = session_factory.getSession()

sq_str = " UPDATE mytable SET variablecode = 'xyz' WHERE variablecode = 'abc' "
DBSession.execute(sql_str)
DBSession.commit()
emiliom commented 6 years ago

We should probably close this issue. @aufdenkampe and @horsburgh, what do you think?

If you think the code snippet I included is useful enough, we could think about folding it somewhere into the Sphinx documentation.

aufdenkampe commented 6 years ago

@emiliom, I like your idea of including your https://github.com/ODM2/ODM2PythonAPI/issues/155#issuecomment-379301786 into the Sphinx documentation. I was recently looking at this with @roelofversteeg and @erekalper and noticing that those functions were indeed in need or work and documentation. It would be good to include that message in the docs.

emiliom commented 6 years ago

Adding this example to the Sphinx docs now, so I'm closing the issue.