Suppression d'un utilisateur #293

Closed
opened 2022-01-23 10:46:59 +01:00 by yann · 1 comment
Contributor

Je sais que ce n'est en général pas souhaité, mais j'ai créé un utilisateur pour tester des problèmes de droits, il n'a donc absolument rien fait comme opération. Je souhaiterais donc le supprimer. J'ai tenté ceci (merci Emmanuel pour la procédure) mais cela ne fonctionne pas. Est-ce possible ?

>>> u = User.query.filter_by(user_name="yleboul").first()
>>> print(u)
yleboul
>>> db.session.delete(u)
>>> db.session.commit()
Traceback (most recent call last):
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
    self.dialect.do_execute(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.NotNullViolation: ERREUR:  une valeur NULL viole la contrainte NOT NULL de la colonne « acronym » dans la relation « departement »
DETAIL:  La ligne en échec contient (3, null, migré de ScoDoc7, 2021-09-21 20:46:38.269468+02, t).


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "<string>", line 2, in commit
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1431, in commit
    self._transaction.commit(_to_root=self.future)
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 829, in commit
    self._prepare_impl()
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 808, in _prepare_impl
    self.session.flush()
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3363, in flush
    self._flush(objects)
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3503, in _flush
    transaction.rollback(_capture_exception=True)
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    compat.raise_(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
    raise exception
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3463, in _flush
    flush_context.execute()
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute
    rec.execute(self)
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 630, in execute
    util.preloaded.orm_persistence.save_obj(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 236, in save_obj
    _emit_update_statements(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1000, in _emit_update_statements
    c = connection._execute_20(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1614, in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 325, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1481, in _execute_clauseelement
    ret = self._execute_context(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1845, in _execute_context
    self._handle_dbapi_exception(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2026, in _handle_dbapi_exception
    util.raise_(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
    raise exception
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
    self.dialect.do_execute(
  File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) ERREUR:  une valeur NULL viole la contrainte NOT NULL de la colonne « acronym » dans la relation « departement »
DETAIL:  La ligne en échec contient (3, null, migré de ScoDoc7, 2021-09-21 20:46:38.269468+02, t).

[SQL: UPDATE departement SET acronym=%(acronym)s WHERE departement.id = %(departement_id)s]
[parameters: {'acronym': None, 'departement_id': 3}]
(Background on this error at: https://sqlalche.me/e/14/gkpj)
Je sais que ce n'est en général pas souhaité, mais j'ai créé un utilisateur pour tester des problèmes de droits, il n'a donc absolument rien fait comme opération. Je souhaiterais donc le supprimer. J'ai tenté ceci (merci Emmanuel pour la procédure) mais cela ne fonctionne pas. Est-ce possible ? ``` >>> u = User.query.filter_by(user_name="yleboul").first() >>> print(u) yleboul >>> db.session.delete(u) >>> db.session.commit() Traceback (most recent call last): File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context self.dialect.do_execute( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute cursor.execute(statement, parameters) psycopg2.errors.NotNullViolation: ERREUR: une valeur NULL viole la contrainte NOT NULL de la colonne « acronym » dans la relation « departement » DETAIL: La ligne en échec contient (3, null, migré de ScoDoc7, 2021-09-21 20:46:38.269468+02, t). The above exception was the direct cause of the following exception: Traceback (most recent call last): File "<console>", line 1, in <module> File "<string>", line 2, in commit File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1431, in commit self._transaction.commit(_to_root=self.future) File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 829, in commit self._prepare_impl() File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 808, in _prepare_impl self.session.flush() File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3363, in flush self._flush(objects) File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3503, in _flush transaction.rollback(_capture_exception=True) File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_ raise exception File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3463, in _flush flush_context.execute() File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute rec.execute(self) File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 630, in execute util.preloaded.orm_persistence.save_obj( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 236, in save_obj _emit_update_statements( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1000, in _emit_update_statements c = connection._execute_20( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1614, in _execute_20 return meth(self, args_10style, kwargs_10style, execution_options) File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 325, in _execute_on_connection return connection._execute_clauseelement( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1481, in _execute_clauseelement ret = self._execute_context( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1845, in _execute_context self._handle_dbapi_exception( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2026, in _handle_dbapi_exception util.raise_( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_ raise exception File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context self.dialect.do_execute( File "/opt/scodoc/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.IntegrityError: (psycopg2.errors.NotNullViolation) ERREUR: une valeur NULL viole la contrainte NOT NULL de la colonne « acronym » dans la relation « departement » DETAIL: La ligne en échec contient (3, null, migré de ScoDoc7, 2021-09-21 20:46:38.269468+02, t). [SQL: UPDATE departement SET acronym=%(acronym)s WHERE departement.id = %(departement_id)s] [parameters: {'acronym': None, 'departement_id': 3}] (Background on this error at: https://sqlalche.me/e/14/gkpj) ```
Owner

Commande
flask user-delete
ajoutée

Commande `flask user-delete` ajoutée
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: ScoDoc/ScoDoc#293
No description provided.