Connexion base tierce (sql server)

12 views
Skip to first unread message

Cyprienp

unread,
Apr 5, 2018, 9:25:04 AM4/5/18
to tryton-fr
Bonjour,

Je voudrais savoir si il est possible d'utiliser dans un module tryton des données provenant d'une base externe déjà existante (sql server), comme on utiliserait un modèle tryton classique.
J'aurai besoin d'y avoir accès en lecture seule pour l'utiliser dans un champ Many2One et pouvoir l'afficher dans des vues.

j'ai pensé à plusieurs solutions :

Créer un model tryton ayant la même structure que la table sql server et implémenter une synchro entre les 2.
=> cette solution me parait assez lourde à implémenter (gérer la synchronisation).

Utiliser les foreign data wrapper de postgresql pour pointer sur une table sql server, et ensuite dans le module tryton créer un model avec table_query qui requête cette table.
=> avec cette solution c'est transparent pour tryton, mais la création de la foreign table, de la connexion à SQL Server manque de souplesse.

J'ai vu la notion de backend dans tryton qui permet d'implémenter le support de nouvelles bases de données.
=> mais je ne sais pas si ça peut s'appliquer dans mon cas, je ne veux pas faire tourner tryton sur sql server mais je veux pouvoir utiliser certaines tables existantes dans tryton.

Est-ce que vous voyez une autre solution qui pourrait me permettre une plus grande souplesse ?
par exemple définir un model ConnexionSqlServer qui contiendrait les informations nécessaires à la connexion (serveur, utilisateur, mot de passe).
et ensuite créer des model qui se baseraient sur un enregistrement de ConnexionSqlServer pour récupérer les données...

Nicolas Évrard

unread,
Apr 5, 2018, 10:10:08 AM4/5/18
to tryton-fr
* Cyprienp [2018-04-05 15:15 +0200]:
>Bonjour,

Bonjour,

>Je voudrais savoir si il est possible d'utiliser dans un module tryton des
>données provenant d'une base externe déjà existante (sql server), comme on
>utiliserait un modèle tryton classique.
>J'aurai besoin d'y avoir accès en lecture seule pour l'utiliser dans un
>champ Many2One et pouvoir l'afficher dans des vues.
>
>j'ai pensé à plusieurs solutions :
>
>Créer un model tryton ayant la même structure que la table sql server et
>implémenter une synchro entre les 2.
>=> cette solution me parait assez lourde à implémenter (gérer la
>synchronisation).
>
>Utiliser les foreign data wrapper de postgresql
><https://www.postgresql.org/docs/current/static/sql-createforeigndatawrapper.html>pour
>pointer sur une table sql server, et ensuite dans le module tryton créer un
>model avec table_query qui requête cette table.
>=> avec cette solution c'est transparent pour tryton, mais la création de
>la foreign table, de la connexion à SQL Server manque de souplesse.
>
>J'ai vu la notion de backend dans tryton qui permet d'implémenter le
>support de nouvelles bases de données.
>=> mais je ne sais pas si ça peut s'appliquer dans mon cas, je ne veux pas
>faire tourner tryton sur sql server mais je veux pouvoir utiliser certaines
>tables existantes dans tryton.
>
>Est-ce que vous voyez une autre solution qui pourrait me permettre
>une plus grande souplesse ?
>par exemple définir un model ConnexionSqlServer qui contiendrait les
>informations nécessaires à la connexion (serveur, utilisateur, mot de
>passe).
>et ensuite créer des model qui se baseraient sur un enregistrement de
>ConnexionSqlServer pour récupérer les données...

Je partirais sur le Foreign Data Wrapper.
Il doit y avoir moyen de tester son existence dans la méthode
__register__ et donc ne rien faire ou l'y créer.

Pour les paramètres de connexion, je stockerais ça dans le fichier de
config.

Les deux autres solutions m'apparaissent assez lourdes alors que celle
ci ne demande qu'un peu de chipotage à priori.

--
Nicolas Évrard - B2CK SPRL
E-mail/Jabber: nicolas...@b2ck.com
Tel: +32 472 54 46 59
Website: http://www.b2ck.com/
Reply all
Reply to author
Forward
0 new messages