jgbolger commented on issue #3464: Issue using Oracle DB as superset database - 
Error running a migration script
URL: 
https://github.com/apache/incubator-superset/issues/3464#issuecomment-329784869
 
 
   Looking at that SQL for creating the query table - the issue is that it is 
attempting to use a reserved word "rows" as a column name.
   
   I believe you can tell SQLAlchemy to add double quotes by including the 
quote=True attribute on the column definition
   `sa.Column('rows', sa.Integer(), nullable=True, quote=True),`
   
   I reran this and it now completes all of the migration scripts but fails 
with the following output:
   ```
   INFO  [alembic.runtime.migration] Context impl OracleImpl.
   INFO  [alembic.runtime.migration] Will assume transactional DDL.
   INFO  [alembic.runtime.migration] Running upgrade  -> 4e6a06bad7a8, Init
   INFO  [alembic.runtime.migration] Running upgrade 4e6a06bad7a8 -> 
5a7bad26f2a7, empty message
   INFO  [alembic.runtime.migration] Running upgrade 5a7bad26f2a7 -> 
1e2841a4128, empty message
   INFO  [alembic.runtime.migration] Running upgrade 1e2841a4128 -> 
2929af7925ed, TZ offsets in data sources
   INFO  [alembic.runtime.migration] Running upgrade 2929af7925ed -> 
289ce07647b, Add encrypted password field
   INFO  [alembic.runtime.migration] Running upgrade 289ce07647b -> 
1a48a5411020, adding slug to dash
   INFO  [alembic.runtime.migration] Running upgrade 1a48a5411020 -> 
315b3f4da9b0, adding log model
   INFO  [alembic.runtime.migration] Running upgrade 315b3f4da9b0 -> 
55179c7f25c7, sqla_descr
   INFO  [alembic.runtime.migration] Running upgrade 55179c7f25c7 -> 
12d55656cbca, is_featured
   INFO  [alembic.runtime.migration] Running upgrade 12d55656cbca -> 
2591d77e9831, user_id
   INFO  [alembic.runtime.migration] Running upgrade 2591d77e9831 -> 
8e80a26a31db, empty message
   INFO  [alembic.runtime.migration] Running upgrade 8e80a26a31db -> 
7dbf98566af7, empty message
   INFO  [alembic.runtime.migration] Running upgrade 7dbf98566af7 -> 
43df8de3a5f4, empty message
   INFO  [alembic.runtime.migration] Running upgrade 43df8de3a5f4 -> 
d827694c7555, css templates
   INFO  [alembic.runtime.migration] Running upgrade d827694c7555 -> 
430039611635, log more
   INFO  [alembic.runtime.migration] Running upgrade 430039611635 -> 
18e88e1cc004, making audit nullable
   INFO  [alembic.runtime.migration] Running upgrade 18e88e1cc004 -> 
836c0bf75904, cache_timeouts
   INFO  [alembic.runtime.migration] Running upgrade 18e88e1cc004 -> 
a2d606a761d9, adding favstar model
   INFO  [alembic.runtime.migration] Running upgrade a2d606a761d9, 836c0bf75904 
-> d2424a248d63, empty message
   INFO  [alembic.runtime.migration] Running upgrade d2424a248d63 -> 
763d4b211ec9, fixing audit fk
   INFO  [alembic.runtime.migration] Running upgrade d2424a248d63 -> 
1d2ddd543133, log dt
   INFO  [alembic.runtime.migration] Running upgrade 1d2ddd543133, 763d4b211ec9 
-> fee7b758c130, empty message
   INFO  [alembic.runtime.migration] Running upgrade fee7b758c130 -> 
867bf4f117f9, Adding extra field to Database model
   INFO  [alembic.runtime.migration] Running upgrade 867bf4f117f9 -> 
bb51420eaf83, add schema to table model
   INFO  [alembic.runtime.migration] Running upgrade bb51420eaf83 -> 
b4456560d4f3, change_table_unique_constraint
   INFO  [alembic.runtime.migration] Running upgrade b4456560d4f3 -> 
4fa88fe24e94, owners_many_to_many
   INFO  [alembic.runtime.migration] Running upgrade 4fa88fe24e94 -> 
c3a8f8611885, Materializing permission
   INFO  [alembic.runtime.migration] Running upgrade c3a8f8611885 -> 
f0fbf6129e13, Adding verbose_name to tablecolumn
   INFO  [alembic.runtime.migration] Running upgrade f0fbf6129e13 -> 
956a063c52b3, adjusting key length
   INFO  [alembic.runtime.migration] Running upgrade 956a063c52b3 -> 
1226819ee0e3, Fix wrong constraint on table columns
   WARNI [root] Could not find or drop constraint on `columns`
   INFO  [alembic.runtime.migration] Running upgrade 1226819ee0e3 -> 
d8bc074f7aad, Add new field 'is_restricted' to SqlMetric and DruidMetric
   INFO  [alembic.runtime.migration] Running upgrade d8bc074f7aad -> 
27ae655e4247, Make creator owners
   INFO  [alembic.runtime.migration] Running upgrade 27ae655e4247 -> 
960c69cb1f5b, add dttm_format related fields in table_columns
   INFO  [alembic.runtime.migration] Running upgrade 960c69cb1f5b -> 
f162a1dea4c4, d3format_by_metric
   INFO  [alembic.runtime.migration] Running upgrade f162a1dea4c4 -> 
ad82a75afd82, Update models to support storing the queries.
   INFO  [alembic.runtime.migration] Running upgrade ad82a75afd82 -> 
3c3ffe173e4f, add_sql_string_to_table
   INFO  [alembic.runtime.migration] Running upgrade 3c3ffe173e4f -> 
41f6a59a61f2, database options for sql lab
   INFO  [alembic.runtime.migration] Running upgrade 41f6a59a61f2 -> 
4500485bde7d, allow_run_sync_async
   INFO  [alembic.runtime.migration] Running upgrade 4500485bde7d -> 
65903709c321, allow_dml
   INFO  [alembic.runtime.migration] Running upgrade 41f6a59a61f2 -> 
33d996bcc382
   INFO  [alembic.runtime.migration] Running upgrade 33d996bcc382, 65903709c321 
-> b347b202819b, empty message
   INFO  [alembic.runtime.migration] Running upgrade b347b202819b -> 
5e4a03ef0bf0, Add access_request table to manage requests to access datastores.
   INFO  [alembic.runtime.migration] Running upgrade 5e4a03ef0bf0 -> 
eca4694defa7, sqllab_setting_defaults
   INFO  [alembic.runtime.migration] Running upgrade eca4694defa7 -> 
ab3d66c4246e, add_cache_timeout_to_druid_cluster
   INFO  [alembic.runtime.migration] Running upgrade eca4694defa7 -> 
3b626e2a6783, Sync DB with the models.py.
   WARNI [root] (cx_Oracle.DatabaseError) ORA-01418: specified index does not 
exist [SQL: '\nDROP INDEX table_name']
   INFO  [alembic.runtime.migration] Running upgrade 3b626e2a6783, ab3d66c4246e 
-> ef8843b41dac, empty message
   INFO  [alembic.runtime.migration] Running upgrade ef8843b41dac -> 
b46fa1b0b39e, Add json_metadata to the tables table.
   INFO  [alembic.runtime.migration] Running upgrade b46fa1b0b39e -> 
7e3ddad2a00b, results_key to query
   INFO  [alembic.runtime.migration] Running upgrade 7e3ddad2a00b -> 
ad4d656d92bc, Add avg() to default metrics
   INFO  [alembic.runtime.migration] Running upgrade ad4d656d92bc -> 
c611f2b591b8, dim_spec
   INFO  [alembic.runtime.migration] Running upgrade c611f2b591b8 -> 
e46f2d27a08e, materialize perms
   INFO  [alembic.runtime.migration] Running upgrade e46f2d27a08e -> 
f1f2d4af5b90, Enable Filter Select
   INFO  [alembic.runtime.migration] Running upgrade e46f2d27a08e -> 
525c854f0005, log_this_plus
   INFO  [alembic.runtime.migration] Running upgrade 525c854f0005, f1f2d4af5b90 
-> 6414e83d82b7, empty message
   INFO  [alembic.runtime.migration] Running upgrade 6414e83d82b7 -> 
1296d28ec131, Adds params to the datasource (druid) table
   INFO  [alembic.runtime.migration] Running upgrade 1296d28ec131 -> 
f18570e03440, Add index on the result key to the query table.
   INFO  [alembic.runtime.migration] Running upgrade f18570e03440 -> 
bcf3126872fc, Add keyvalue table
   INFO  [alembic.runtime.migration] Running upgrade f18570e03440 -> 
db0c65b146bd, update_slice_model_json
   INFO  [alembic.runtime.migration] Running upgrade db0c65b146bd -> 
a99f2f7c195a, rewriting url from shortner with new format
   INFO  [alembic.runtime.migration] Running upgrade a99f2f7c195a, bcf3126872fc 
-> d6db5a5cdb5d, empty message
   INFO  [alembic.runtime.migration] Running upgrade d6db5a5cdb5d -> 
b318dfe5fb6c, adding verbose_name to druid column
   INFO  [alembic.runtime.migration] Running upgrade d6db5a5cdb5d -> 
732f1c06bcbf, add fetch values predicate
   INFO  [alembic.runtime.migration] Running upgrade 732f1c06bcbf, b318dfe5fb6c 
-> ea033256294a, empty message
   INFO  [alembic.runtime.migration] Running upgrade b318dfe5fb6c -> 
db527d8c4c78, Add verbose name to DruidCluster and Database
   INFO  [alembic.runtime.migration] Running upgrade db527d8c4c78, ea033256294a 
-> 979c03af3341, empty message
   INFO  [alembic.runtime.migration] Running upgrade 979c03af3341 -> 
a6c18f869a4e, query.start_running_time
   INFO  [alembic.runtime.migration] Running upgrade a6c18f869a4e -> 
2fcdcb35e487, saved_queries
   INFO  [alembic.runtime.migration] Running upgrade 2fcdcb35e487 -> 
a65458420354, add_result_backend_time_logging
   INFO  [alembic.runtime.migration] Running upgrade a65458420354 -> 
ca69c70ec99b, tracking_url
   Loaded your LOCAL configuration at [/etc/superset/superset_config.py]
   2017-09-15 13:56:33,818:INFO:root:Syncing role definition
   2017-09-15 13:56:33,818:INFO:root:Creating database reference
   Traceback (most recent call last):
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", 
line 1182, in _execute_context
       context)
     File 
"/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 
470, in do_execute
       cursor.execute(statement, parameters)
   cx_Oracle.IntegrityError: ORA-01400: cannot insert NULL into 
("XDB"."DBS"."ID")
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "/usr/local/bin/superset", line 15, in <module>
       manager.run()
     File "/usr/local/lib/python3.6/site-packages/flask_script/__init__.py", 
line 412, in run
       result = self.handle(sys.argv[0], sys.argv[1:])
     File "/usr/local/lib/python3.6/site-packages/flask_script/__init__.py", 
line 383, in handle
       res = handle(*args, **config)
     File "/usr/local/lib/python3.6/site-packages/flask_script/commands.py", 
line 216, in __call__
       return self.run(*args, **kwargs)
     File "/usr/local/lib/python3.6/site-packages/superset/cli.py", line 28, in 
init
       security.sync_role_definitions()
     File "/usr/local/lib/python3.6/site-packages/superset/security.py", line 
202, in sync_role_definitions
       get_or_create_main_db()
     File "/usr/local/lib/python3.6/site-packages/superset/security.py", line 
101, in get_or_create_main_db
       db.session.commit()
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/scoping.py", 
line 157, in do
       return getattr(self.registry(), name)(*args, **kwargs)
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/session.py", 
line 906, in commit
       self.transaction.commit()
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/session.py", 
line 461, in commit
       self._prepare_impl()
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/session.py", 
line 441, in _prepare_impl
       self.session.flush()
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/session.py", 
line 2171, in flush
       self._flush(objects)
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/session.py", 
line 2291, in _flush
       transaction.rollback(_capture_exception=True)
     File 
"/usr/local/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 
66, in __exit__
       compat.reraise(exc_type, exc_value, exc_tb)
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", 
line 187, in reraise
       raise value
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/session.py", 
line 2255, in _flush
       flush_context.execute()
     File 
"/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 
389, in execute
       rec.execute(self)
     File 
"/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 
548, in execute
       uow
     File 
"/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 
181, in save_obj
       mapper, table, insert)
     File 
"/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 
835, in _emit_insert_statements
       execute(statement, params)
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", 
line 945, in execute
       return meth(self, multiparams, params)
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", 
line 263, in _execute_on_connection
       return connection._execute_clauseelement(self, multiparams, params)
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", 
line 1053, in _execute_clauseelement
       compiled_sql, distilled_params
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", 
line 1189, in _execute_context
       context)
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", 
line 1402, in _handle_dbapi_exception
       exc_info
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", 
line 203, in raise_from_cause
       reraise(type(exception), exception, tb=exc_tb, cause=cause)
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", 
line 186, in reraise
       raise value.with_traceback(tb)
     File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", 
line 1182, in _execute_context
       context)
     File 
"/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 
470, in do_execute
       cursor.execute(statement, parameters)
   sqlalchemy.exc.IntegrityError: (cx_Oracle.IntegrityError) ORA-01400: cannot 
insert NULL into ("XDB"."DBS"."ID") [SQL: 'INSERT INTO dbs (created_on, 
changed_on, verbose_name, database_name, sqlalchemy_uri, password, 
cache_timeout, select_as_create_table_as, expose_in_sqllab, allow_run_sync, 
allow_run_async, allow_ctas, allow_dml, force_ctas_schema, extra, perm, 
created_by_fk, changed_by_fk) VALUES (:created_on, :changed_on, :verbose_name, 
:database_name, :sqlalchemy_uri, :password, :cache_timeout, 
:select_as_create_table_as, :expose_in_sqllab, :allow_run_sync, 
:allow_run_async, :allow_ctas, :allow_dml, :force_ctas_schema, :extra, :perm, 
:created_by_fk, :changed_by_fk) RETURNING dbs.id INTO :ret_0'] [parameters: 
{'created_on': datetime.datetime(2017, 9, 15, 13, 56, 33, 831803), 
'changed_on': datetime.datetime(2017, 9, 15, 13, 56, 33, 831810), 
'verbose_name': None, 'database_name': 'main', 'sqlalchemy_uri': 
'oracle://XDB:XXXXXXXXXX@oracledb:1521/XE', 'password': b'I5GyQ4mhCkC7uNGFmrw
 XLw==', 'cache_timeout': None, 'select_as_create_table_as': 0, 
'expose_in_sqllab': 1, 'allow_run_sync': 1, 'allow_run_async': 0, 'allow_ctas': 
0, 'allow_dml': 0, 'force_ctas_schema': None, 'extra': '{\n    
"metadata_params": {},\n    "engine_params": {}\n}\n', 'perm': None, 
'created_by_fk': None, 'changed_by_fk': None, 'ret_0': <cx_Oracle.NUMBER with 
value None>}]
   ```
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to