Contribuer

Infos Contribution

Suivre
1 suiveur

Statistiques

Envoyé : 2019-06-07 13:16:01 -0500

Vu : 48 fois

Dernière mise à jour : 2019-06-11 12:42:06 -0500

0

Environnement de développement local Passerelle

envoyé 2019-06-07 13:16:01 -0500

Image Gravatar de bluez974

Bonjour, Je voudrais mettre en place un connecteur personnalisé et pour ce faire j'ai suivi la doc d'installation d'un environnement de développement local avec Ansible et celle concernant les connecteurs personnalisés.

Publik tourne bien dans un environnement virtuel avec le host *.dev.publik.love

La déclaration du module et du connecteur semble bien se passer après la commande suivante que j'execute dans le "venv" passerelle-manage makemigrations passerelle_test

Cependant l'appli passerelle n'est plus opérationnelle après une 1ere tentative d'instanciation du nouveau connecteur. J'ai l'erreur SQL copié à la fin du message qui remonte dans la page d'accueil

J'ai bien déclaré le nouveau connecteur dans settings.d du dossier local ~/.config/publik/passerelle/ Pour rétablir le service Passerelle je dois retirer le fichier .py de ce dossier settings.d

La base de donnée PgSQL passerelle existe bien. La table remontée dans l'erreur n'existe effectivement pas. La base passerelle ne contient qu'une seule table "django_migrations"

La doc sur les connecteurs personnalisés est-elle à jour ?

Merci de votre aide


Environment:

Request Method: GET Request URL: https://passerelle.dev.publik.love/ma...

Django Version: 1.11.18 Python Version: 2.7.15 Installed Applications: '' Installed Middleware: ''

Traceback:

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request)

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request)

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request)

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, callback_args, *callback_kwargs)

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 23. return view_func(request, args, *kwargs)

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/views/generic/base.py" in view 68. return self.dispatch(request, args, *kwargs)

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch 88. return handler(request, args, *kwargs)

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/views/generic/base.py" in get 155. context = self.get_context_data(**kwargs)

File "/home/sda-bat-dev/src/passerelle/passerelle/views.py" in get_context_data 116. context['apps'].extend(app.objects.all())

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/db/models/query.py" in __iter__ 250. self._fetch_all()

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/db/models/query.py" in _fetch_all 1121. self._result_cache = list(self._iterable_class(self))

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/model_utils/managers.py" in __iter__ 44. for obj in iter:

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2.7/site-packages/django/db/models/query.py" in __iter__ 53. results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)

File "/home/sda-bat-dev/envs/publik-env/local/lib/python2 ...

(plus)
modifier requalifier fermer Supprimer

2 réponses

Filtrer les contributions : anciennes récentes populaires
0

répondue 2019-06-07 13:35:24 -0500

Entr'ouvert

La page de documentation sur le développement des connecteurs se base sur une installation système de Publik, par exemple Passerelle y est redémarré via la commande "sudo service passerelle restart". Dans cette commande se cache l'exécution des migrations de la base de données, qui est l'étape qui manque ici.

Pour manuellement exécuter les migrations il faut lancer la commande migrate_schemas (en utilisant le manage.py de Passerelle). (je n'ai pas un environnement identique installé localement, je pense qu'il doit y avoir un passerelle-manage qui pose le bon environnement pour exécuter la commande).

modifier Supprimer publié plus
0

répondue 2019-06-11 05:48:44 -0500

Image Gravatar de bluez974

Bonjour, Effectivement si je me mets dans l'environnement virtuel, je peux exécuter la commande : passerelle-manage migrate_schemas

qui est muette

Au niveau du redémarrage j'utilise la commande suivante : sudo supervisorctl start passerelle-server

J'ai toujours l'erreur après avoir lancé les 2 commandes. Ce qui est étonnant c'est que avant de déclarer mon connecteur personnalisé j'ai pu instancié un des connecteurs de base mais ma base postresql "passerelle" ne contient toujours qu'une seule table django_migrations"

J'ai aussi créé un formulaire wcs et la base de données wcs est complètement vide

MàJ Résolution

J'ai recommencé de 0 la création du connecteur helloworld en changeant complètement de nom (dossiers "franck_module/franck" et nom de classe du modèle "Franck") et j'ai pu l'instancier correctement dans le manager de passerelle. Les commandes que j'ai utilisées à l'intérieur du "publik-env" :

  • cd ~/chemin_vers_module/franck_module

  • python setup.py develop

  • passerelle-manage makemigrations franck

  • passerelle-manage migrate_schemas

  • sudo supervisorctl restart passerelle-server

2 tables ont bien été créées dans la base passerelle :

passerelle_dev_publik_love | franck_franck | table | sda-bat-dev

passerelle_dev_publik_love | franck_franck_users | table | sda-bat-dev

Merci pour votre aide !

PS : Ce serait intéressant de coupler la doc d'installation d'un environnement de développement local avec celle du développement d'un connecteur

modifier Supprimer publié plus

Commentaires

Oui les données sont dans un schéma postgresql; set schema 'passerelle_dev_publik_love'; et ensuite les tables devraient être lisibles. Côté w.c.s. ce n'est a priori pas normal, il n'utilise pas les schémas, mais ce serait un autre problème.

Fred ( 2019-06-11 05:52:14 -0500 )modifier

Les données de passerelle sont bien dans le schema qui porte le nom du tenant et pour wcs, une autre base a été créé wcs_wcs_dev_publik_love en plus de la base wcs. Donc au niveau initialisation de la BDD passerelle est OK par contre j'ai toujours l'erreur lorsque je déclare le connecteur test de la doc

bluez974 ( 2019-06-11 08:14:51 -0500 )modifier
S'identifier/S'inscrire pour répondre