Confluex / Zuul

Keymaster and Gatekeeper - Application Configuration Management
http://confluex.com
Apache License 2.0
42 stars 32 forks source link

Using External Database, Cannot Insert Null in ID Column in Oracle 12C #84

Closed xx75vulcan closed 8 years ago

xx75vulcan commented 9 years ago

I've downloaded and installed Zuul 1.5.1 using Tomcat7, on a Windows 2008 R2 machine and configured it to authenticate trough Active Directory.

After finding it authenticated through AD fine, I took the next step and changed the zule-data-config.xml file to use Oracle 12C instead of the default in-memory database.

I restarted Zuul and it created the tables in the Zuul schema, and Zuul started up.

I logged back into Zuul and the authentication page threw an error.

The Zule.log file shows the following: Error executing SQL INSERT INTO security_role (description, name) VALUES ('Guest', 'ROLE_GUEST'): ORA-01400: cannot insert NULL into ("ZUUL"."SECURITY_ROLE"."ID")

It appears the Zuul code is trying to insert into the table SECURITY_ROLE using only the columns "Description" and "Name" but failing to insert a value for the non-null field "ID".

psmith commented 9 years ago

Liquibase v 3.4.0 and higher is supposed to support oracle 12c's newer auto increment. I'll have to try updating liquibase, regression testing against 12c and earlier version of oracle, along with all the other various databases like postgres, mysql, ms sql, db 2....

So, if you have the time and inclination, the quickest route for you may be check out the project, update the liquibase dependency, then build a war and deploy it. I have a whole lot of testing and various configurations to build before I could cut a release on that change. (The liquibase dependency is buried under a lot of parent poms, which removing all the layers is on the todo list also)

xx75vulcan commented 9 years ago

Hi,

Below are what the zuul db config looks like. We commented out the default database, and added drivers for Oracle/Exadata.

As a temporary workaround, I created a database sequence and an insert trigger for each of the tables that would generate the value for the required "ID" column and that seemed to work. I just didn't know if it was something I was comfortable using as a long term workaround, or if there was a simple configuration change that I could make so that the "ID" column was populated as part of Zuul's SQL Insert statements.

------------ In Memory H2 Database ------------

Embedded databases which is useful for

evaluation purposes. The data is wiped after

server restart.

-----------------------------------------------

jdbc.zuul.url=jdbc:h2:mem:zuul

jdbc.zuul.url=jdbc:h2:tcp://localhost/~/.zuul/data

jdbc.zuul.generate.ddl=validate

jdbc.zuul.username=sa

jdbc.zuul.password=

jdbc.zuul.driver=org.h2.Driver

jdbc.zuul.dialect=org.hibernate.dialect.H2Dialect

jdbc.zuul.validationQuery=select 1

---------------- Exadata Database ----------------

Create a connection for Exadata

------------------------------------------------

jdbc.zuul.url=jdbc:oracle:thin:@xxxxxxxx-scan:xxxxxx/xxxxxx.xxx.xx.xxx

jdbc.zuul.generate.ddl=none

jdbc.zuul.username=ZUUL

jdbc.zuul.password=xxxxxxxx

jdbc.zuul.driver=oracle.jdbc.OracleDriver

jdbc.zuul.dialect=org.hibernate.dialect.Oracle10gDialect

jdbc.zuul.validationQuery=select SYSDATE from DUAL

On Tue, Nov 17, 2015 at 3:42 PM, psmith notifications@github.com wrote:

What do the zuul db config properties look like?

I'll try to replicate the issue the best I can. I'll probably need to use postgresql that uses sequences like oracle (assuming oracle doesn't have a free trial I can try out)

— Reply to this email directly or view it on GitHub https://github.com/Confluex/Zuul/issues/84#issuecomment-157518241.

psmith commented 9 years ago

For Oracle 12c, the liquibase version upgrade to the dependency may work.

Sorry, I'm working on some other stuff in my full time gig, so I haven't had time to setup a test. But, I'm expecting I'd have to change liquibase to make a sequence for oracle and/or upgrade the liquibase version.

psmith commented 8 years ago

Closing issue as it is really a dupe of https://github.com/Confluex/Zuul/issues/64