Projet

Général

Profil

Bug #13291

Erreur lors de l'import d'utilisateurs

Ajouté par Josué Kouka il y a plus de 7 ans. Mis à jour il y a plus de 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Josué Kouka
Catégorie:
-
Version cible:
-
Début:
23 septembre 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

Description

Traceback (most recent call last):
  File "/usr/lib/mandayejs/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/dist-packages/hobo/multitenant/management/commands/tenant_command.py", line 51, in run_from_argv
    klass.run_from_argv(args)
  File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python2.7/dist-packages/mandayejs/mandaye/management/commands/migrate-users.py", line 59, in handle
    self.migrate(data)
  File "/usr/lib/python2.7/dist-packages/mandayejs/mandaye/management/commands/migrate-users.py", line 90, in migrate
    last_name=data.get('spLogin', ''))
  File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 127, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 407, in get_or_create
    return self._create_object_from_params(lookup, params)
  File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 439, in _create_object_from_params
    obj = self.create(**params)
  File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 348, in create
    obj.save(force_insert=True, using=self.db)
  File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 734, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 762, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 846, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 885, in _do_insert
    using=using, raw=raw)
  File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 127, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 920, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 974, in execute_sql
    cursor.execute(sql, params)
  File "/usr/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 100, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
django.db.utils.DataError: ERREUR:  valeur trop longue pour le type character varying(30)

La taille du champ pour un username dans l'ancien Mandaye était de 150 char

mandaye3m=# \d idp_user
                                  Table "public.idp_user" 
  Column   |          Type          |                       Modifiers                       
-----------+------------------------+-------------------------------------------------------
 id        | integer                | not null default nextval('idp_user_id_seq'::regclass)
 unique_id | character varying(150) | not null
 idp_id    | character varying(150) | not null
Indexes:
    "idp_user_pkey" PRIMARY KEY, btree (id)
Referenced by:
    TABLE "sp_user" CONSTRAINT "sp_user_idp_user_id_fkey" FOREIGN KEY (idp_user_id) REFERENCES idp_user(id)

Historique

#1

Mis à jour par Serghei Mihai il y a plus de 7 ans

Il ne s'agit pas de username.
L'outil d'import essayer de créer un utilisateur Django en lui mettant dans le champ username le NameID. Et comme dans Django username est limité à 30 caractères, ça explose.

#2

Mis à jour par Josué Kouka il y a plus de 7 ans

  • Description mis à jour (diff)
#3

Mis à jour par Josué Kouka il y a plus de 7 ans

  • Statut changé de Nouveau à Fermé

La procédure à suivre lors de l'import est de transformer les name_id en uuid, ce qui permet d'avoir des username coherants

Formats disponibles : Atom PDF