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.

Reply via email to