On Wed, Jun 27, 2018 at 5:14 AM, <[email protected]> wrote: > Hello, > > I'm hoping someone might have advice on how to track down this problem or > what might be causing it. I don't have code that I can use to recreate the > issue as I'm not able to recreate it outside of one instance of the same > codebase (I've got a local development environment, and two test development > environments that UI/UX developers can have access to use and make changes > to the UI/UX which I then push to the servers, but I'm the only developer > making/pushing changes and all 3 have identical code apart from some > contents in the database). > > The issue I'm having is that Flask-SQLAlchemy will create a new row in a > table/model without any problems. > > However, when I try to update a row anywhere it just simply doesn't. If I > flush before the commit it acts as if the changes have been made even when > they aren't actually committed (ie if I print object.column the changed > value is shown.. but then when I look in the DB or query again the original > value is still there). > > So as an example: > > user = Users.query.filter_by(username='foo').first() > print(user.first_name) > # as an example let's say the current value is Yoshi > user.first_name = 'Tom' > db.session.flush() > db.session.commit() > print(user.first_name) > # it would output 'Tom' here, though when I look in the MySQL database, or > run the initial query again the original value persists. > > Is there any way to try and track down what's going on behind the scenes > here to narrow down what could be causing the problem? Is there a way to > see if the db.session.commit() is actually executing,
you want to log SQL output using echo=True or similar, which will also show the word COMMIT when it commits the transaction: http://docs.sqlalchemy.org/en/latest/core/engines.html#configuring-logging and if so what the SQL > it's generating is? When it's in a try/except block it doesn't throw any > errors, when it isn't it doesn't either. > > The only other thing I've tried and noticed threw an error was explicitly > adding the row to the session, such as this: > > db.session.add(user) > > When I do this I receive the following: > > 2018-06-27 08:35:32,072: File "./app2/routes.py", line 4450, in > change_info > 2018-06-27 08:35:32,072: db.session.add(user) > 2018-06-27 08:35:32,072: File > "/home/werdenaz/.virtualenvs/lenv/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", > line 153, in do > 2018-06-27 08:35:32,072: return getattr(self.registry(), name)(*args, > **kwargs) > 2018-06-27 08:35:32,072: File > "/home/werdenaz/.virtualenvs/lenv/lib/python3.6/site-packages/sqlalchemy/orm/session.py", > line 1776, in add > 2018-06-27 08:35:32,072: self._save_or_update_state(state) > 2018-06-27 08:35:32,072: File > "/home/werdenaz/.virtualenvs/lenv/lib/python3.6/site-packages/sqlalchemy/orm/session.py", > line 1789, in _save_or_update_state > 2018-06-27 08:35:32,072: self._save_or_update_impl(state) > 2018-06-27 08:35:32,072: File > "/home/werdenaz/.virtualenvs/lenv/lib/python3.6/site-packages/sqlalchemy/orm/session.py", > line 2106, in _save_or_update_impl > 2018-06-27 08:35:32,072: self._update_impl(state) > 2018-06-27 08:35:32,073: File > "/home/werdenaz/.virtualenvs/lenv/lib/python3.6/site-packages/sqlalchemy/orm/session.py", > line 2089, in _update_impl > 2018-06-27 08:35:32,073: to_attach = self._before_attach(state, obj) > 2018-06-27 08:35:32,073: File > "/home/werdenaz/.virtualenvs/lenv/lib/python3.6/site-packages/sqlalchemy/orm/session.py", > line 2179, in _before_attach > 2018-06-27 08:35:32,073: state.session_id, self.hash_key)) > 2018-06-27 08:35:32,073: sqlalchemy.exc.InvalidRequestError: Object > '<UserInfo at 0x7f3bf01b3d30>' is already attached to session '1' (this is > '2') > > I'm not sure if this is helpful or not in this situation. > Thanks! > > -- > SQLAlchemy - > The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
