</exec>
</target>
- <target name="recreate_nuxeo_db" if="${create_db.recreate}" description="recreate nuxeo database">
- <echo>Recreating nuxeo databases with credentials ${db.csadmin.user}:${db.csadmin.user.password}</echo>
- <sql driver="${db.jdbc.driver.class}" url="${db.jdbc.csadmin.url}" userid="${db.csadmin.user}" password="${db.csadmin.user.password}" autocommit="true" src="${db.script.dir}/init_nuxeo_db.sql">
+ <target name="drop_nuxeo_db" if="${create_db.recreate}" description="drop nuxeo database">
+ <echo>Dropping nuxeo databases with credentials ${db.csadmin.user}:${db.csadmin.user.password}</echo>
+ <sql driver="${db.jdbc.driver.class}" url="${db.jdbc.csadmin.url}" userid="${db.csadmin.user}" password="${db.csadmin.user.password}" autocommit="true" src="${db.script.dir}/drop_nuxeo_db.sql">
<classpath>
<pathelement path="${db.driver.jar}" />
</classpath>
</sql>
</target>
- <target name="create_nuxeo_db" depends="recreate_nuxeo_db">
+ <target name="create_nuxeo_db" depends="drop_nuxeo_db">
<ant antfile="services/build.xml" target="create_nuxeo_db" inheritAll="false" />
</target>
- <target name="recreate_cspace_db" if="${create_db.recreate}" description="recreate cspace database">
- <echo>Recreating the cspace database with credentials ${db.csadmin.user}:${db.csadmin.user.password}</echo>
- <sql driver="${db.jdbc.driver.class}" url="${db.jdbc.csadmin.url}" userid="${db.csadmin.user}" password="${db.csadmin.user.password}" autocommit="true" src="${db.script.dir}/init_cspace_db.sql">
+ <target name="drop_cspace_db" if="${create_db.recreate}" description="drop cspace database">
+ <echo>Dropping the cspace database with credentials ${db.csadmin.user}:${db.csadmin.user.password}</echo>
+ <sql driver="${db.jdbc.driver.class}" url="${db.jdbc.csadmin.url}" userid="${db.csadmin.user}" password="${db.csadmin.user.password}" autocommit="true" src="${db.script.dir}/drop_cspace_db.sql">
<classpath>
<pathelement path="${db.driver.jar}" />
</classpath>
</sql>
</target>
- <target name="create_cspace_db" depends="recreate_cspace_db">
+ <target name="create_cspace_db" depends="drop_cspace_db">
+ <echo>Creating the cspace database with credentials ${db.csadmin.user}:${db.csadmin.user.password}</echo>
+ <!--
+ The SQL create role/database statements may fail if the cspace role/database already exists. Since the goal of this target
+ is for the cspace role and database to be created, it's fine if they already exist, so onerror is set to "continue".
+ -->
+ <sql driver="${db.jdbc.driver.class}" url="${db.jdbc.csadmin.url}" userid="${db.csadmin.user}" password="${db.csadmin.user.password}" autocommit="true" src="${db.script.dir}/init_cspace_db.sql" onerror="continue">
+ <classpath>
+ <pathelement path="${db.driver.jar}" />
+ </classpath>
+ </sql>
<ant antfile="services/build.xml" target="create_cspace_db" inheritAll="false" />
</target>
<target name="setup_initdb.sql" description="copy init_db scripts, replacing keywords">
<mkdir dir="${jee.server.cspace}/cspace/services/db/postgresql"/>
<copy todir="${jee.server.cspace}/cspace/services/db/postgresql">
- <fileset dir="${jee.server.cspace}/cspace/services/db/postgresql" includes="init_cspace_db.sql, init_nuxeo_db.sql">
+ <fileset dir="${jee.server.cspace}/cspace/services/db/postgresql" includes="drop_cspace_db.sql, init_cspace_db.sql, drop_nuxeo_db.sql">
<present targetdir="${src}/main/resources/db/postgresql" />
</fileset>
<globmapper from="*" to="*.bak" />
public final static String NUXEO_SERVER_DIR = "nuxeo-server";
public final static String NUXEO_CONFIG_DIR = CONFIG_DIR_NAME;
public final static String NUXEO_SERVER_CONFIG_DIR = NUXEO_SERVER_DIR + File.separator + NUXEO_CONFIG_DIR;
-
+
// The file name parts for a Nuxeo repository configuration file. These end up in tomcat/nuxeo-server/config dir
public final static String NUXEO_REPO_CONFIG_FILENAME_SUFFIX = "-repo-config.xml";
public final static String NUXEO_PROTOTYPE_REPO_CONFIG_FILENAME = "proto" + NUXEO_REPO_CONFIG_FILENAME_SUFFIX;
-
- // The file name parts for a Nuxeo datasource configuration file. These end up in tomcat/nuxeo-server/config dir
+
+ // The file name parts for a Nuxeo datasource configuration file. These end up in tomcat/nuxeo-server/config dir
public final static String NUXEO_DATASOURCE_CONFIG_FILENAME_SUFFIX = "-datasource-config.xml";
public final static String NUXEO_PROTOTYPE_DATASOURCE_FILENAME = "proto" + NUXEO_DATASOURCE_CONFIG_FILENAME_SUFFIX;
-
+
// The file name parts for Nuxeo's Elasticsearch configuration
- public final static String NUXEO_ELASTICSEARCH_CONFIG_FILENAME = "elasticsearch-config.xml";
+ public final static String NUXEO_ELASTICSEARCH_CONFIG_FILENAME = "elasticsearch-config.xml";
public final static String NUXEO_PROTO_ELASTICSEARCH_CONFIG_FILENAME = "proto-" + NUXEO_ELASTICSEARCH_CONFIG_FILENAME;
public final static String NUXEO_PROTO_ELASTICSEARCH_EXTENSION_FILENAME = "proto-elasticsearch-extension.xml";
-
+
public final static String NUXEO_PLUGINS_DIR = "plugins";
public final static String NUXEO_SERVER_PLUGINS_DIR = NUXEO_SERVER_DIR + File.separator + NUXEO_PLUGINS_DIR;
- public final static String NUXEO_DB_INIT_SCRIPT_FILENAME = "init_nuxeo_db.sql";
+ public final static String NUXEO_DB_DROP_SCRIPT_FILENAME = "drop_nuxeo_db.sql";
}
// to include DROP statements for each of the Nuxeo-managed
// database names and for each relevant datasource user.
String[] dataSourceNames = {JDBCTools.NUXEO_DATASOURCE_NAME, JDBCTools.NUXEO_READER_DATASOURCE_NAME};
- updateInitializationScript(getNuxeoDatabasesInitScriptFilename(),
+ updateInitializationScript(getNuxeoDatabasesDropScriptFilename(),
dbsCheckedOrCreated, dataSourceNames);
//
* @return the full path to the Nuxeo databases initialization script file.
* Returns an empty String for the path if the database scripts path is null or empty.
*/
- private String getNuxeoDatabasesInitScriptFilename() {
+ private String getNuxeoDatabasesDropScriptFilename() {
return Tools.notBlank(getDatabaseScriptsPath()) ?
- getDatabaseScriptsPath() + File.separator + JEEServerDeployment.NUXEO_DB_INIT_SCRIPT_FILENAME : "";
+ getDatabaseScriptsPath() + File.separator + JEEServerDeployment.NUXEO_DB_DROP_SCRIPT_FILENAME : "";
}
/**
--- /dev/null
+-- drop all the objects before dropping roles
+DROP database IF EXISTS @DB_CSPACE_NAME@;
+
+DROP user IF EXISTS @DB_CSPACE_USER@;
--- /dev/null
+
+-- drop_nuxeo_db.sql
+
+-- Beginning with CollectionSpace version 4.1, the contents of the deployed
+-- copy of this file are no longer static. Rather, that file's contents are
+-- now written during each CollectionSpace system startup, via Services
+-- layer code. (Code-written contents appear at the top of that file.)
--- drop all the objects before dropping roles
-DROP database IF EXISTS @DB_CSPACE_NAME@;
-
-DROP USER IF EXISTS @DB_CSPACE_USER@;
-
CREATE ROLE @DB_CSPACE_USER@ WITH PASSWORD '@DB_CSPACE_PASSWORD@' LOGIN;
--