Question
· Déc 11, 2023

Accès refusé

Bonjour,

Je suis en train de faire un test avec django sur notre base de données. Le but étant de créer une API pour voir la réactivité de celle-ci.

J'ai créé le projet sans problème, j'ai réussi à créer les 16 000 lignes de models avec inspect_db. Tout se passait bien jusqu'au moment où j'ai voulu testé mon projet, 'Accès refusé'.

De ce que j'ai pu voir, Il n'y aurait pas d'erreur de code, car les seules erreurs retournées sont les suivantes.

Je ne pense pas que ce soit un problème majeur, plutôt un manque de pratique sur votre système. Auriez-vous une idée à me soumettre?

Un grand merci par avance.

Bien à vous.

Laurent

 

PS D:\ProjetIris\TestDjango> python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\intersystems_iris\dbapi\_DBAPI.py", line 44, in connect
    return native_connect(
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\intersystems_iris\_IRISNative.py", line 183, in connect
    connection._connect(hostname, port, namespace, username, password, timeout, sharedmemory, logfile, sslcontext, autoCommit, isolationLevel, featureOptions, application_name)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\intersystems_iris\_IRISConnection.py", line 304, in _connect
    raise e
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\intersystems_iris\_IRISConnection.py", line 274, in _connect
    raise Exception(self._in_message.wire._get())
Exception: Accès refusé

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\backends\base\base.py", line 289, in ensure_connection
    self.connect()
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\backends\base\base.py", line 270, in connect
    self.connection = self.get_new_connection(conn_params)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django_iris\base.py", line 170, in get_new_connection
    return Database.connect(**conn_params)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\intersystems_iris\dbapi\_DBAPI.py", line 52, in connect
    raise OperationalError(e)
intersystems_iris.dbapi._DBAPI.OperationalError: Accès refusé

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "c:\users\l.jouron\appdata\local\programs\python\python39\lib\threading.py", line 954, in _bootstrap_inner
    self.run()
  File "c:\users\l.jouron\appdata\local\programs\python\python39\lib\threading.py", line 892, in run
    self._target(*self._args, **self._kwargs)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\core\management\commands\runserver.py", line 136, in inner_run
    self.check_migrations()
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\core\management\base.py", line 574, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\migrations\executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\migrations\loader.py", line 58, in __init__
    self.build_graph()
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\migrations\loader.py", line 235, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\migrations\recorder.py", line 81, in applied_migrations
    if self.has_table():
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\migrations\recorder.py", line 57, in has_table
    with self.connection.cursor() as cursor:
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\backends\base\base.py", line 330, in cursor
    return self._cursor()
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\backends\base\base.py", line 306, in _cursor
    self.ensure_connection()
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\backends\base\base.py", line 289, in ensure_connection
    self.connect()
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\utils.py", line 91, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\backends\base\base.py", line 289, in ensure_connection
    self.connect()
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\db\backends\base\base.py", line 270, in connect
    self.connection = self.get_new_connection(conn_params)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\django_iris\base.py", line 170, in get_new_connection
    return Database.connect(**conn_params)
  File "D:\ProjetIris\TestDjango\.venv\lib\site-packages\intersystems_iris\dbapi\_DBAPI.py", line 52, in connect
    raise OperationalError(e)
django.db.utils.OperationalError: Accès refusé

Version du produit: IRIS 2023.3
Discussion (3)1
Connectez-vous ou inscrivez-vous pour continuer

Merci pour ta réponse Guillaume.

J'ai enfin réussi à me connecté. Peut-être une erreur de configuration ou l'utilisation d'un mauvais environnement virtuel, dans tous les cas tout vas bien, c'est l'essentiel.

Nous sommes en train de faire des tests pour savoir dans quel direction partir dans le projet final. Je fais actuellement un poc avec python/django/DRF. Ce "petit" projet est créé est en parallèle de la base de données. 

Une autre erreur qui est apparue. J'ai suivi les recommandations que tu nous as données lors de notre réunion pour créer l'API. Voici le retour.

django.db.utils.OperationalError: [SQLCODE: <-1>:<Instruction SQL non valide >]
[Location: <Prepare>]
[%msg: < IDENTIFICATEUR attendu, : trouvé" ^SELECT COUNT ( * ) AS "__count" FROM :%qpar>]

Y aurait-il une erreur de path ou metaclass du models?

Je tâtonne sans succès pour le moment. Aurais-tu une idée ou un indice?

Merci par avance

Bonjour,

J'aurai besoin d'un example de model où l'erreur arrive.

De plus, peux tu essayer de mettre à jour le driver db-api d'iris, nous avons récemment corrigé des problèmes par rapport aux TINYINT et aux streams.

pip install intersystems_iris@https://github.com/intersystems-community/intersystems-irispython/releases/download/3.7.3/intersystems_iris-3.7.3-py3-none-any.whl --upgrade

Sinon, tu peux toujours soumettre un bug sur l’interpréteur django pour iris ici:

https://github.com/caretdev/django-iris