CMDBuild Forum

Script per installazione manuale

Salve supporto,

di seguito vi riportiamo alcune modifiche effettuate dalla nostra squadra per facilitare l’installazione manuale.

Di seguito il contenuto del file cmdbuild.sh


#!/bin/sh
createuser -s -d -r -l -P -E cmdbuild
createdb --encoding=UTF8 --owner=cmdbuild cmdbuild
psql -d cmdbuild -c ‘CREATE LANGUAGE plpgsql;’
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/shark_schema/01_shark_user.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/shark_schema/02_shark_emptydb.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/01_system_functions_base.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/02_system_functions_class.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/03_system_functions_attribute.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/04_system_functions_domain.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/05_base_tables.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/06_system_views_base.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/07_support_tables.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/08_user_tables.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/09_system_views_extras.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/10_system_functions_extras.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/11_workflow_lookup.sql
psql -d cmdbuild -f /var/lib/tomcat6/webapps/cmdbuild/WEB-INF/sql/base_schema/12_insert_user.sql

Ovviamente il percorso dei file sql varia a seconda del percorso di webapps sotto tomcat.

Abbiamo apportato alcune modifiche ai file .sql:

  1. Abbiamo inserito dalla precedente versione (CMDBuild 1.0 R2) il file insert_user.sql rinominandolo in 12_insert_user.sql per eseguirlo come ultimo comando;
  2. Per creare correttamente lo schema shark abbiamo modificato il file 01_shark_user.sql come segue:

CREATE SCHEMA shark;
CREATE OR REPLACE FUNCTION create_shark_role()
RETURNS void AS
$BODY$
DECLARE
temp BIGINT;
BEGIN

    CREATE ROLE shark LOGIN
    ENCRYPTED PASSWORD 'md5088dfc423ab6e29229aeed8eea5ad290'
    NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;
    ALTER ROLE shark SET search_path=public,shark;

EXCEPTION WHEN duplicate_object THEN RETURN;
END
$BODY$
LANGUAGE ‘plpgsql’ VOLATILE;

SELECT create_shark_role();

DROP FUNCTION create_shark_role();

ALTER SCHEMA shark OWNER TO shark;

abbiamo decommentato e spostato la penultima riga mettendola come prima riga;
abbiamo decommentato l’ultima riga;
abbiamo sostituito a ‘pg_default’ lo schema ‘public’.

  1. Abbiamo inserito nel file 02_shark_emptydb.sql il seguente comando alla riga 7:

SET search_path TO shark,public;

Quest’ultimo per permettere la creazione delle tabelle all’interno dello schema shark.

Saluti

Grazie per l'aiuto,

Stiamo lavorando per rendere più efficiente il setup automatico già dalla prossima release ufficiale.

Nel frattempo vi ringraziamo