Re: [tryton-fr] Créer une DB avec proteus ?

95 views
Skip to first unread message

Dominique Chabord

unread,
Apr 19, 2016, 6:55:02 AM4/19/16
to tryt...@googlegroups.com
oui la démo demo.tryrton.org est initialisée par proteus.

Le 19 avril 2016 à 12:49, LédiFrance <ledifr...@gmail.com> a écrit :
> Bonjour,
>
> Le client tryton permet de créer une nouvelle base de données fonctionnelle
> « à partir de rien ».
>
> Je suis en train de chercher comment faire la même chose avec proteus, mais
> est-ce vraiment possible ?
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> "tryton-fr".
> Cette discussion peut être lue sur le Web à l'adresse
> https://groups.google.com/d/msgid/tryton-fr/79591005-8ea0-4a43-9294-e0f86770511d%40googlegroups.com.

LédiFrance

unread,
Apr 19, 2016, 7:03:54 AM4/19/16
to tryton-fr, dominiqu...@sisalp.org
J'avais supprimé la question car trouvé la réponse immédiatement après l'avoir postée : il y a un exemple dans http://hg.tryton.org/trytond/file/tip/trytond/tests/test_tryton.py (ce n'est donc pas vraiment le fait de proteus).

LédiFrance

unread,
Apr 19, 2016, 8:27:49 AM4/19/16
to tryton-fr, dominiqu...@sisalp.org
Enfin, « trouvé la réponse » est un bien grand mot… Pour l'instant je n'y arrive pas, je ne sais pas comment me connecter au serveur PostgreSQL. J'ai ça :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from trytond import backend
from trytond.protocols.dispatcher import create, drop

DB_NAME = 'uhu'
USER_PASSWORD = 'mdp'

Database = backend.get('Database')
database = Database().connect()
if DB_NAME in database.list():
        drop(None, DB_NAME, None)

create(None, DB_NAME, None, 'fr_FR', USER_PASSWORD)

J'obtiens l'erreur suivante :

Traceback (most recent call last):
  File "initTrytonNew.py", line 12, in <module>
    if DB_NAME in database.list():
TypeError: list() takes exactly 1 argument (0 given)


Je suppose que c'est parce que le script ne s'est connecté nulle part, et je ne sais pas comment lui donner l'URI PostgreSQL (l'équivalent du config.set_trytond de proteus).

Dominique Chabord

unread,
Apr 19, 2016, 9:51:36 AM4/19/16
to tryt...@googlegroups.com
proteus doit accéder au fichier de configuration d'un serveur trytond valide.
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> "tryton-fr".
> Cette discussion peut être lue sur le Web à l'adresse
> https://groups.google.com/d/msgid/tryton-fr/387253d6-76de-4961-adaf-2387bf1c94e2%40googlegroups.com.

LédiFrance

unread,
Apr 19, 2016, 10:33:30 AM4/19/16
to tryton-fr, dominiqu...@sisalp.org
Le mardi 19 avril 2016 15:51:36 UTC+2, Dominique Chabord a écrit :
proteus doit accéder au fichier de configuration d'un serveur trytond valide.

Oui, c'est bien le problème, je ne sais pas comment créer la connexion.

Mon but (avec ou sans proteus) est d'automatiser la création et initialisation de la DB. Pour le moment je n'ai pas trouvé de fonction sous proteus permettant de se connecter à un serveur, de créer une DB puis de l'initialiser. La fonction set_trytond permet de se connecter, mais suppose que la DB a déjà été initialisée, sinon :


Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/proteus/config.py", line 280, in set_trytond
    _CONFIG.current = TrytondConfig(database, user, config_file=config_file)
  File "/usr/local/lib/python2.7/dist-packages/proteus/config.py", line 232, in __init__
    self.pool.init()
  File "/usr/local/lib/python2.7/dist-packages/trytond/pool.py", line 155, in init
    lang=lang)
  File "/usr/local/lib/python2.7/dist-packages/trytond/modules/__init__.py", line 427, in load_modules
    _load_modules()
  File "/usr/local/lib/python2.7/dist-packages/trytond/modules/__init__.py", line 387, in _load_modules
    'to remove'))))
  File "/usr/local/lib/python2.7/dist-packages/trytond/backend/postgresql/database.py", line 294, in execute
    return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: ERREUR:  la relation « ir_module » n'existe pas
LINE 1: SELECT "a"."name" FROM "ir_module" AS "a" WHERE ("a"."state"...

Je fouille donc dans tryton et trytond, mais pour l'instant je patauge toujours au niveau de la création de la connexion au serveur…

Nicolas Évrard

unread,
Apr 19, 2016, 10:43:41 PM4/19/16
to tryton-fr
* LédiFrance [2016-04-19 21:33 +0700]:
>Le mardi 19 avril 2016 15:51:36 UTC+2, Dominique Chabord a écrit :
>>
>> proteus doit accéder au fichier de configuration d'un serveur trytond
>> valide.
>>
>
>Oui, c'est bien le problème, je ne sais pas comment créer la connexion.
>
>Mon but (avec ou sans proteus) est d'automatiser la création et
>initialisation de la DB.

1. Crée la base de donnée avec "createdb" de postgre

2. Ensuite tu l'initialise avec "trytond -c fichier_de_config -d db --all"
(ça n'installe que les modules de base: ir et res).

3. Et puis, je te propose de t'inspirer du script générant la base de
donnée de démo:

http://hg.tryton.org/tryton-tools/file/tip/tryton_demo.py

(plus particulièrement de la fonction install_modules)

--
Nicolas Évrard - B2CK SPRL
E-mail/Jabber: nicolas...@b2ck.com
Tel: +32 472 54 46 59
Website: http://www.b2ck.com/

Christophe

unread,
Apr 20, 2016, 2:02:36 AM4/20/16
to tryt...@googlegroups.com
Le 20/04/2016 04:43, Nicolas Évrard a écrit :
> * LédiFrance [2016-04-19 21:33 +0700]:
>> Le mardi 19 avril 2016 15:51:36 UTC+2, Dominique Chabord a écrit :
>>>
>>> proteus doit accéder au fichier de configuration d'un serveur trytond
>>> valide.
>>>
>>
>> Oui, c'est bien le problème, je ne sais pas comment créer la connexion.
>>
>> Mon but (avec ou sans proteus) est d'automatiser la création et
>> initialisation de la DB.
>
> 1. Crée la base de donnée avec "createdb" de postgre
>
> 2. Ensuite tu l'initialise avec "trytond -c fichier_de_config -d db --all"
> (ça n'installe que les modules de base: ir et res).

Lors de mes tests en version 3.6, cette cette commande initialisait la
base en anglais, est-que maintenant elle prend en compte la langue
définie dans le fichier de conf ?

>
> 3. Et puis, je te propose de t'inspirer du script générant la base de
> donnée de démo:
> http://hg.tryton.org/tryton-tools/file/tip/tryton_demo.py
>
> (plus particulièrement de la fonction install_modules)
>

--
Christophe
http://adiczion.com

LédiFrance

unread,
Apr 20, 2016, 6:56:32 AM4/20/16
to tryton-fr
Le mercredi 20 avril 2016 04:43:41 UTC+2, Nicolas Évrard a écrit :
* LédiFrance  [2016-04-19 21:33 +0700]:
>Mon but (avec ou sans proteus) est d'automatiser la création et
>initialisation de la DB.

1. Crée la base de donnée avec "createdb" de postgre

2. Ensuite tu l'initialise avec "trytond -c fichier_de_config -d db --all"
   (ça n'installe que les modules de base: ir et res).

3. Et puis, je te propose de t'inspirer du script générant la base de
   donnée de démo:
   
        http://hg.tryton.org/tryton-tools/file/tip/tryton_demo.py

Pourquoi réinventer la roue ? A priori ce script fait tout ce dont j'ai besoin (sauf les points 1 et 2, triviaux à implémenter avec subprocess.call), merci !
 

LédiFrance

unread,
Apr 20, 2016, 7:03:34 AM4/20/16
to tryton-fr
Le mercredi 20 avril 2016 08:02:36 UTC+2, Christophe CRIER a écrit :
Le 20/04/2016 04:43, Nicolas Évrard a écrit :
> 2. Ensuite tu l'initialise avec "trytond -c fichier_de_config -d db --all"
>    (ça n'installe que les modules de base: ir et res).

Lors de mes tests en version 3.6, cette cette commande initialisait la
base en anglais, est-que maintenant elle prend en compte la langue
définie dans le fichier de conf ?

Le menu est en anglais (trytond 3.8.3).

LédiFrance

unread,
Apr 21, 2016, 4:58:22 AM4/21/16
to tryton-fr
Le mercredi 20 avril 2016 13:03:34 UTC+2, LédiFrance a écrit :
Le menu est en anglais (trytond 3.8.3).

Et pas seulement le menu… Pour l'instant ça dépasse le rapport compétences / temps que je suis prêt à y mettre, mais pour référence : https://bugs.tryton.org/issue4982

LédiFrance

unread,
Apr 22, 2016, 11:31:15 AM4/22/16
to tryton-fr
Le jeudi 21 avril 2016 10:58:22 UTC+2, LédiFrance a écrit :
Et pas seulement le menu… Pour l'instant ça dépasse le rapport compétences / temps que je suis prêt à y mettre, mais pour référence : https://bugs.tryton.org/issue4982

En attendant une solution plus pérenne, il suffit de rendre traduisible dans ir_lang la langue de destination, puis de mettre à jour la DB :

    createdb -O tryton $DBNAME
    trytond -c /opt/trytond.conf -d $DBNAME --all
    psql -d $DBNAME -c "update ir_lang set translatable = True where code like 'fr_FR'"
    trytond -c /opt/trytond.conf -d $DBNAME --all

Reply all
Reply to author
Forward
0 new messages