Installing Fixes That Involve Updates to Database Tables

We understand that some customers have security policies which compel them to use the Liferay platform to connect to the database as a user that does not have elevated privileges; privileges to change the structure of the tables, such as CREATE, ALTER and/or DROP. 

Sometimes a plugin or hotfix that we provide may require a database update to resolve the issue. Unlike a full Liferay Portal upgrade, there isn't an obvious expectation that there will be a database update. So if you apply the new plugin/hotfix that requires a database update, you will receive database permission errors, for example:

code>08:41:36,858 WARN  [ServerServiceThread Pool -- 140][BaseDB:457] ORA-01031: insufficient privileges: create table Marketplace_App (uuid_ VARCHAR2(75 CHAR) null,appId number(30,0) not null primary key,companyId number(30,0),userId number(30,0),userName VARCHAR2(75 CHAR) null,createDate timestamp null,modifiedDate timestamp null,remoteAppId number(30,0),title VARCHAR2(75 CHAR) null,description varchar2(4000) null,category VARCHAR2(75 CHAR) null,iconURL varchar2(4000) null,version VARCHAR2(75 CHAR) null);
08:41:36,874 WARN  [ServerServiceThread Pool -- 140][BaseDB:457] ORA-01031: insufficient privileges: create table Marketplace_Module (uuid_ VARCHAR2(75 CHAR) null,moduleId number(30,0) not null primary key,appId number(30,0),bundleSymbolicName VARCHAR2(500 CHAR) null,bundleVersion VARCHAR2(75 CHAR) null,contextName VARCHAR2(75 CHAR) null);

Due to the complexity of database structure and possible data changes, our patching processes do not allow us to provide the raw SQL scripts with the fixes.

Resolution

Find a maintenance window to:

  1. Set the application server (Ex. Tomcat) to connect to the database as a privileged user with CREATE/ALTER/DROP rights.
  2. Start up the Liferay platform and let the update commence.
  3. Switch back to the secured user. 
Was this article helpful?
1 out of 1 found this helpful