Rasa X - ORA-01430: the column being add already exist in the table

Hello!

Rasa version:1.4.0

Rasa X version: 0.22.0

cx-Oracle: 7.2.2

Can I use one oracle database for conversations and another for events? Passing endpoints.yml:

tracker_store:
  type: CustomTrackerStoreOracle

In docker-compose:

environment:
  DB_DRIVER: "oracle"
  DB_USER: "admin" -> different compared to CustomTrackerStoreOracle (user='user') the rest is the same
  DB_PASSWORD: "teste"
  DB_HOST: "localhost"
  DB_PORT: "1521"
  DB_DATABASE: "rasa"

For db events the user is ‘user’ and for conversations ‘admin’. I get this error when I run docker container:

ORA-01430: the column being add already exist in the table

In this case, I think that it try to create every time. How can I fix it?

I just need Rasa X to try to connect to the database and not recreate it through a migration. The error occurs as described… :sob:

What should I do?

I just need Rasa X to try to connect to the database and not recreate it through a migration. The error occurs as described… :sob:

What do you mean you need it to already connect? Can you clarify your current setup? The DB and the tracker store are different, it should be creating the database even if there is already things in the tracker store.

I’m testing the migration.py for understand what is happening. When I run in local mode, it work with a little detail:

AttributeError: 'SQLTrackerStore' object has no attribute 'session'

With my oracle database, my “new_endpoints.yml” is:

tracker_store:
  type: sql
  dialect: "oracle"
  url: 127.0.0.1
  port: 1521
  username: rasa-x
  password: admin
  db: rasa

P.S.: the only difference between conversations and events database is the username!

I receive:

File "C:\Program Files\Python36\lib\site-packages\sqlalchemy\engine\default.py", line 453, in connect
    return self.dbapi.connect(*cargs, **cparams)
sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) ORA-12545: Connect failed because target host or object does not exist

On the environments db case, the error occurs as described before.

Finally I managed to run “migrate_tracker_store_to_rasa_x.py”, passing “new_endpoints.yml” like this:

tracker_store:
  type: "sql"
  dialect: oracle
  url: "oracle://admin:teste@127.0.0.1:1521/rasa"

But I take this:

sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) ORA-00906: left parenthese not found
[SQL:
CREATE TABLE entity_synonym_value (
        id INTEGER NOT NULL,
        entity_synonym_id INTEGER,
        name VARCHAR2,
        PRIMARY KEY (id),
        FOREIGN KEY(entity_synonym_id) REFERENCES entity_synonym (id) ON DELETE cascade
)

]
(Background on this error at: http://sqlalche.me/e/4xp6)

Ha, seems Oracle support for Rasa X is broken. I’ll ship a fix :slight_smile:

1 Like