Installation connecteur MySQL pour Python sous Windows

Plus d'informations
il y a 4 ans 4 mois #23763 par pitchouns34570
Bonjour,
Nous avons réussi à réaliser l'installation sur Windows depuis Noethys sans trop de souci avec une installation sur le serveur physique présent sur notre site.
Pas de problème avec la base interne mais impossible sous MySQL car le connecteur n'est pas présent par défaut sur python semble-t-il.
Qq'un pourrait-il nous spécifier le connecteur à prendre ou la procédure à suivre pour une installation serveur sous Windows de ce connecteur ? En effet, il  y a une quantité de page avec des solutions plus ou moins simple pour un composant qui me semble plus que basic...
Si une bonne âme passe par là :p nous sommes preneurs.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 3 mois #23865 par pitchouns34570
Bien le bonjour,
Après investigation, j'en ai déduit que le connecteur n'était pas celui fourni par Oracle ni celui proposé par PIP sur la plupart des forum mais celui pypi.org : MySQL-python 1.2.5 qui est le seul à répondre au nom de MySQLdb, les autres étant nommé mysql tout court.

Et je me retrouve malheureusement bloqué ensuite par un message d'erreur lors du lancement du serveur :
lib/sqlalchemy\engine\default.py:450: Warning: Incorrect string value: '\x92\xE9
t\xE9)' for column 'VARIABLE_VALUE' at row 484
  cursor.execute(statement, parameters)
lib/sqlalchemy\dialects\mysql\base.py:2513: Warning: '@@tx_isolation' is depreca
ted and will be removed in a future release. Please use '@@transaction_isolation
' instead
  cursor.execute('SELECT @@tx_isolation')
lib/sqlalchemy\engine\default.py:450: Warning: Can't create database 'connecthys
'; database exists
  cursor.execute(statement, parameters)
Traceback (most recent call last):
  File "run.py", line 92, in 
    from application import app
  File "D:\Connecthys\application\__init__.py", line 134, in 
    models.CreationDB()
  File "D:\Connecthys\application\models.py", line 75, in CreationDB
    db.create_all()
  File "lib/flask_sqlalchemy\__init__.py", line 972, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
  File "lib/flask_sqlalchemy\__init__.py", line 964, in _execute_for_all_tables
    op(bind=self.get_engine(app, bind), **extra)
  File "lib/sqlalchemy\sql\schema.py", line 3695, in create_all
    tables=tables)
  File "lib/sqlalchemy\engine\base.py", line 1856, in _run_visitor
    conn._run_visitor(visitorcallable, element, **kwargs)
  File "lib/sqlalchemy\engine\base.py", line 1481, in _run_visitor
    **kwargs).traverse_single(element)
  File "lib/sqlalchemy\sql\visitors.py", line 121, in traverse_single
    return meth(obj, **kw)
  File "lib/sqlalchemy\sql\ddl.py", line 730, in visit_metadata
    _is_metadata_operation=True)
  File "lib/sqlalchemy\sql\visitors.py", line 121, in traverse_single
    return meth(obj, **kw)
  File "lib/sqlalchemy\sql\ddl.py", line 764, in visit_table
    include_foreign_key_constraints=include_foreign_key_constraints
  File "lib/sqlalchemy\engine\base.py", line 914, in execute
    return meth(self, multiparams, params)
  File "lib/sqlalchemy\sql\ddl.py", line 68, in _execute_on_connection
    return connection._execute_ddl(self, multiparams, params)
  File "lib/sqlalchemy\engine\base.py", line 968, in _execute_ddl
    compiled
  File "lib/sqlalchemy\engine\base.py", line 1146, in _execute_context
    context)
  File "lib/sqlalchemy\engine\base.py", line 1341, in _handle_dbapi_exception
    exc_info
  File "lib/sqlalchemy\util\compat.py", line 202, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "lib/sqlalchemy\engine\base.py", line 1139, in _execute_context
    context)
  File "lib/sqlalchemy\engine\default.py", line 450, in do_execute
    cursor.execute(statement, parameters)
  File "C:\Python27\Lib\site-packages\MySQLdb\cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "C:\Python27\Lib\site-packages\MySQLdb\connections.py", line 36, in defau
lterrorhandler
    raise errorclass, errorvalue
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1074, "Co
lumn length too big for column 'ventilation' (max = 65535); use BLOB or TEXT ins
tead") [SQL: u'\nCREATE TABLE co_portail_paiements (\n\t`IDpaiement` INTEGER NOT
 NULL AUTO_INCREMENT, \n\t`factures_ID` VARCHAR(50), \n\t`IDfamille` INTEGER, \n
\t`IDtransaction` VARCHAR(50), \n\trefdet VARCHAR(50), \n\tmontant FLOAT, \n\tob
jet VARCHAR(50), \n\tsaisie VARCHAR(5), \n\tresultrans VARCHAR(5), \n\tnumauto V
ARCHAR(10), \n\tdattrans VARCHAR(15), \n\theurtrans VARCHAR(15), \n\tsysteme_pai
ement VARCHAR(50), \n\tresultat VARCHAR(50), \n\tmessage VARCHAR(450), \n\tventi
lation VARCHAR(100000), \n\thorodatage DATETIME, \n\tPRIMARY KEY (`IDpaiement`)\
n)\n\n']

Est ce de nouveau moi qui ai pris un mauvais connecteur ou bien avez vous déjà vu ce problème dans d'autre cas ?
Merci à tous pour votre aide.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 3 mois #23877 par Ivan
Bonjour,

Pour le connecteur, je conseille mysql-client : c'est un fork de MySQLdb.

Pour le bug qui apparaît,  voici la partie importante : "Column length too big for column 'ventilation' (max = 65535); use BLOB or TEXT instead") [SQL: u'\nCREATE TABLE co_portail_paiements".
Je conseille de faire la manipulation manuelle suivante : Transformer le champ "ventilation" de type VARCHAR en TEXT. Cela devrait résoudre le problème si on s'en tient au message indiqué.

Ivan

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 3 mois #23882 par fanchigleterrible
Bonjour,
J'ai le même soucis lors de la création de la base de donnée connecthys sur un serveur linux debian 10 avec mariadb et python 2.7.
J'ai déja réussi à créer un noethys en réseaux sur linux debian 9 il y a 2ans (non sans mal je l'avoue).
Aujourd'hui je dois refaire une installation de base avec un nouveau fichier noethys en réseau sur un autre serveur.
Je bloque éperdument sur ce message d'erreur lorsque - une fois connecthys installé via fichier github et prêt à être synchronisé - je clique sur "synchroniser les données".
La base de donnée connecthys est créée à ce moment la, mais reste vide lors de ce message d'erreur.
J'ai vérifié la base de données lié à noethys et la déclaration de "ventilation" est bien à TEXT. J'ai l'impression que sqlalchemy essaie de créer la base de donnée lié à connecthys et qu'il bug à ce moment.
N'y aurait-il pas un soucis avec model.py ? ou sqlachemy ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 3 mois #23891 par pitchouns34570
Bonjour,
Merci pour les réponses.
J'avoue craquer un poil sur l'installation de la solution avec des comportements erratiques lors de la mise à jour de la base. Par exemple, celle-ci ne fonctionne
pas si le serveur web n'est pas démarrer alors que MySQL est démarrer et
que la mise à jours de la base ne touche.. que la base. L'option
permettant de recréer les tables "vierges" n'est pas particulièrement
explicite pour moi du coup je galère :p

Merci pour le coup de main, je pars en congés ce soir donc je vais faire mes tests en revenant
avec la tête plus fraiche. Bon courage à cous.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 3 mois #23897 par fanchigleterrible
Il me semble avoir trouver...
C'est bien lors de la création de la BDD connecthys via fichier "model.py" que le problème arrive.
J'ai modifié le fichier "model.py" du repertoire connecthys (v0.7.9) de la manière suivante : (je ne savait pas prog en python pour avoir TEXT dans la BDD)

1- J'ai modifié les VARCHAR(100000) en VARCHAR(10000) dut à l'erreur stipulant 16363 max.
2- j'ai lancé une synchronisation après demarrage du serveur.
3- J'ai modifié les 4 bases de donnée concernées (portails_actions, portails_elements, portails_blocs et portail_paiement) en TEXT au lieu de  VARCHAR(10000).  Pour faire cela je me suis connecté directement dans mysql.

C'est très condensé comme message mais çà permettra à notre/nos programmeur(s) de faire le nécessaire.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.238 secondes
Propulsé par Kunena