diff --git a/catalogue/CMakeLists.txt b/catalogue/CMakeLists.txt
index 852de97e58cff04f068129f02638f726ed76e358..8c1ecc3b756b3f628e8a3084f8176d63a26a1572 100644
--- a/catalogue/CMakeLists.txt
+++ b/catalogue/CMakeLists.txt
@@ -43,7 +43,15 @@ target_link_libraries (ctacatalogue
   ${ORACLE-INSTANTCLIENT_LIBRARIES}
   ${SQLITE_LIBRARIES})
 
-set (CATALOGUE_UNIT_TESTS_LIB_SRC_FILES
+add_custom_command(OUTPUT catalogue_schema.cpp
+  COMMAND sed 's/^/\ \ \ \ \"/' ${CMAKE_CURRENT_SOURCE_DIR}/catalogue_schema.sql | sed 's/$$/\"/' > catalogue_schema.cpp
+  DEPENDS catalogue_schema.sql)
+
+add_custom_command(OUTPUT SqliteCatalogue.cpp
+  COMMAND sed '/CTA_SQL_SCHEMA/r catalogue_schema.cpp' ${CMAKE_CURRENT_SOURCE_DIR}/SqliteCatalogue.cpp_before_SQL_schema > SqliteCatalogue.cpp
+  DEPENDS catalogue_schema.cpp)
+
+set(CATALOGUE_UNIT_TESTS_LIB_SRC_FILES
   SqliteCatalogueTest.cpp
   SqliteStmtTest.cpp)
 
diff --git a/catalogue/SqliteCatalogue.cpp b/catalogue/SqliteCatalogue.cpp_before_SQL_schema
similarity index 88%
rename from catalogue/SqliteCatalogue.cpp
rename to catalogue/SqliteCatalogue.cpp_before_SQL_schema
index c97c82a54707a8b370694b341d64650d7ea25154..e4188ad9f5171e427a3ed48afcb2f20251c0e438 100644
--- a/catalogue/SqliteCatalogue.cpp
+++ b/catalogue/SqliteCatalogue.cpp_before_SQL_schema
@@ -38,274 +38,8 @@ cta::catalogue::SqliteCatalogue::SqliteCatalogue():
 //------------------------------------------------------------------------------
 void cta::catalogue::SqliteCatalogue::createDbSchema() {
   const char *const sql = 
-    "CREATE TABLE ADMIN_USER("
-    "  ADMIN_USER_NAME VARCHAR2(100) NOT NULL,"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME)"
-    ");"
-
-    "CREATE TABLE ADMIN_HOST("
-    "  ADMIN_HOST_NAME VARCHAR2(100),"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT ADMIN_HOST_PK PRIMARY KEY(ADMIN_HOST_NAME)"
-    ");"
-
-    "CREATE TABLE STORAGE_CLASS("
-    "  STORAGE_CLASS_NAME VARCHAR2(100) NOT NULL,"
-    "  NB_COPIES          INTEGER       NOT NULL,"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_NAME)"
-    ");"
-
-    "CREATE TABLE TAPE_POOL("
-    "  TAPE_POOL_NAME   VARCHAR2(100) NOT NULL,"
-    "  NB_PARTIAL_TAPES INTEGER       NOT NULL,"
-    "  IS_ENCRYPTED     INTEGER       NOT NULL,"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_NAME)"
-    ");"
-
-    "CREATE TABLE ARCHIVE_ROUTE("
-    "  STORAGE_CLASS_NAME VARCHAR2(100) NOT NULL,"
-    "  COPY_NB            INTEGER       NOT NULL,"
-    "  TAPE_POOL_NAME     VARCHAR2(100) NOT NULL,"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_NAME, COPY_NB),"
-
-    "  CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_NAME)"
-    "    REFERENCES STORAGE_CLASS(STORAGE_CLASS_NAME),"
-    "  CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_NAME)"
-    "    REFERENCES TAPE_POOL(TAPE_POOL_NAME)"
-    ");"
-
-    "CREATE TABLE LOGICAL_LIBRARY("
-    "  LOGICAL_LIBRARY_NAME VARCHAR2(100) NOT NULL,"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_NAME)"
-    ");"
-
-    "CREATE TABLE TAPE("
-    "  VID                  VARCHAR2(100) NOT NULL,"
-    "  LOGICAL_LIBRARY_NAME VARCHAR2(100) NOT NULL,"
-    "  TAPE_POOL_NAME       VARCHAR2(100) NOT NULL,"
-    "  ENCRYPTION_KEY       VARCHAR2(100) NOT NULL,"
-    "  CAPACITY_IN_BYTES    INTEGER       NOT NULL,"
-    "  DATA_IN_BYTES        INTEGER       NOT NULL,"
-    "  LAST_FSEQ            INTEGER       NOT NULL,"
-    "  IS_DISABLED          INTEGER       NOT NULL,"
-    "  IS_FULL              INTEGER       NOT NULL,"
-    "  LBP_IS_ON            INTEGER       NOT NULL,"
-
-    "  LABEL_DRIVE VARCHAR2(100) NOT NULL,"
-    "  LABEL_TIME  INTEGER NOT NULL,"
-
-    "  LAST_READ_DRIVE  VARCHAR2(100) NOT NULL,"
-    "  LAST_READ_TIME   INTEGER       NOT NULL,"
-    "  LAST_WRITE_DRIVE VARCHAR2(100) NOT NULL,"
-    "  LAST_WRITE_TIME  INTEGER       NOT NULL,"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT TAPE_PK PRIMARY KEY(VID),"
-
-    "  CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_NAME)"
-    "    REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_NAME),"
-    "  CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_NAME)"
-    "    REFERENCES TAPE_POOL(TAPE_POOL_NAME)"
-    ");"
-
-    "CREATE TABLE MOUNT_POLICY("
-    "  MOUNT_POLICY_NAME VARCHAR2(100) NOT NULL,"
-
-    "  ARCHIVE_PRIORITY        INTEGER NOT NULL,"
-    "  ARCHIVE_MIN_REQUEST_AGE INTEGER NOT NULL,"
-
-    "  RETRIEVE_PRIORITY        INTEGER NOT NULL,"
-    "  RETRIEVE_MIN_REQUEST_AGE INTEGER NOT NULL,"
-
-    "  MAX_DRIVES_ALLOWED INTEGER NOT NULL,"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)"
-    ");"
-
-    "CREATE TABLE REQUESTER("
-    "  REQUESTER_NAME VARCHAR2(100) NOT NULL,"
-
-    "  MOUNT_POLICY_NAME VARCHAR2(100) NOT NULL,"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT REQUESTER_PK PRIMARY KEY(REQUESTER_NAME),"
-
-    "  CONSTRAINT REQUESTER_MOUNT_POLICY_FK FOREIGN KEY(MOUNT_POLICY_NAME)"
-    "    REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)"
-    ");"
-
-    "CREATE TABLE REQUESTER_GROUP("
-    "  REQUESTER_GROUP_NAME VARCHAR2(100) NOT NULL,"
-
-    "  MOUNT_POLICY_NAME VARCHAR2(100) NOT NULL,"
-
-    "  USER_COMMENT VARCHAR2(1000) NOT NULL,"
-
-    "  CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  CREATION_LOG_TIME       INTEGER       NOT NULL,"
-
-    "  LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,"
-    "  LAST_UPDATE_TIME       INTEGER       NOT NULL,"
-
-    "  CONSTRAINT REQUESTER_GROUP_PK PRIMARY KEY(REQUESTER_GROUP_NAME),"
-
-    "  CONSTRAINT REQUESTER_GRP_MOUNT_POLICY_FK FOREIGN KEY(MOUNT_POLICY_NAME)"
-    "    REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)"
-    ");"
-
-    "CREATE TABLE ARCHIVE_FILE("
-    "  ARCHIVE_FILE_ID    INTEGER       NOT NULL,"
-    "  DISK_INSTANCE      VARCHAR2(100) NOT NULL,"
-    "  DISK_FILE_ID       VARCHAR2(100) NOT NULL,"
-    "  FILE_SIZE          INTEGER       NOT NULL,"
-    "  CHECKSUM_TYPE      VARCHAR2(100) NOT NULL,"
-    "  CHECKSUM_VALUE     VARCHAR2(100) NOT NULL,"
-    "  STORAGE_CLASS_NAME VARCHAR2(100) NOT NULL,"
-    "  CREATION_TIME      INTEGER       NOT NULL,"
-    "  LAST_UPDATE_TIME   INTEGER       NOT NULL,"
-
-    "  RECOVERY_PATH  VARCHAR2(2000) NOT NULL,"
-    "  RECOVERY_OWNER VARCHAR2(100)  NOT NULL,"
-    "  RECOVERY_GROUP VARCHAR2(100)  NOT NULL,"
-    "  RECOVERY_BLOB  VARCHAR2(100)  NOT NULL,"
-
-    "  CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID),"
-
-    "  CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_NAME) "
-    "    REFERENCES STORAGE_CLASS(STORAGE_CLASS_NAME),"
-
-    "  CONSTRAINT ARCHIVE_FILE_DSK_INST_FILE_UN UNIQUE(DISK_INSTANCE, DISK_FILE_ID)"
-    ");"
-
-    "CREATE TABLE TAPE_FILE("
-    "  VID             VARCHAR2(100) NOT NULL,"
-    "  FSEQ            INTEGER       NOT NULL,"
-    "  BLOCK_ID        INTEGER       NOT NULL,"
-    "  CREATION_TIME   INTEGER       NOT NULL,"
-    "  ARCHIVE_FILE_ID INTEGER       NOT NULL,"
-
-    "  CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ),"
-
-    "  CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID)"
-    "    REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID),"
-
-    "  CONSTRAINT TAPE_FILE_FSEQ_BLOCK_ID_UN UNIQUE(FSEQ, BLOCK_ID)"
-    ");";
+    // CTA_SQL_SCHEMA - The contents of catalogue_schema.sql go here
+    ;
   m_conn.enableForeignKeys();
   m_conn.execNonQuery(sql);
 }
diff --git a/catalogue/catalogue_schema.sql b/catalogue/catalogue_schema.sql
index dde1b4b7f31acf222c2c9d96e9340b98cc56ad8b..a4fe50e87879fec79b3912d757bf71e805366ed8 100644
--- a/catalogue/catalogue_schema.sql
+++ b/catalogue/catalogue_schema.sql
@@ -1,134 +1,90 @@
-set sqlblanklines ON
-DROP TABLE ARCHIVE_ROUTE;
-DROP TABLE TAPE_FILE;
-DROP TABLE ARCHIVE_FILE;
-DROP TABLE TAPE;
-DROP TABLE REQUESTER;
-DROP TABLE REQUESTER_GROUP;
-DROP TABLE ADMIN_USER;
-DROP TABLE ADMIN_HOST;
-DROP TABLE STORAGE_CLASS;
-DROP TABLE TAPE_POOL;
-DROP TABLE LOGICAL_LIBRARY;
-DROP TABLE MOUNT_POLICY;
 CREATE TABLE ADMIN_USER(
   ADMIN_USER_NAME VARCHAR2(100) NOT NULL,
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT ADMIN_USER_PK PRIMARY KEY(ADMIN_USER_NAME)
 );
-
 CREATE TABLE ADMIN_HOST(
   ADMIN_HOST_NAME VARCHAR2(100),
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT ADMIN_HOST_PK PRIMARY KEY(ADMIN_HOST_NAME)
 );
-
 CREATE TABLE STORAGE_CLASS(
   STORAGE_CLASS_NAME VARCHAR2(100) NOT NULL,
   NB_COPIES          INTEGER       NOT NULL,
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT STORAGE_CLASS_PK PRIMARY KEY(STORAGE_CLASS_NAME)
 );
-
 CREATE TABLE TAPE_POOL(
   TAPE_POOL_NAME   VARCHAR2(100) NOT NULL,
   NB_PARTIAL_TAPES INTEGER       NOT NULL,
   IS_ENCRYPTED     INTEGER       NOT NULL,
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT TAPE_POOL_PK PRIMARY KEY(TAPE_POOL_NAME)
 );
-
 CREATE TABLE ARCHIVE_ROUTE(
   STORAGE_CLASS_NAME VARCHAR2(100) NOT NULL,
   COPY_NB            INTEGER       NOT NULL,
   TAPE_POOL_NAME     VARCHAR2(100) NOT NULL,
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT ARCHIVE_ROUTE_PK PRIMARY KEY(STORAGE_CLASS_NAME, COPY_NB),
-
   CONSTRAINT ARCHIVE_ROUTE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_NAME)
     REFERENCES STORAGE_CLASS(STORAGE_CLASS_NAME),
   CONSTRAINT ARCHIVE_ROUTE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_NAME)
     REFERENCES TAPE_POOL(TAPE_POOL_NAME)
 );
-
 CREATE TABLE LOGICAL_LIBRARY(
   LOGICAL_LIBRARY_NAME VARCHAR2(100) NOT NULL,
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT LOGICAL_LIBRARY_PK PRIMARY KEY(LOGICAL_LIBRARY_NAME)
 );
-
 CREATE TABLE TAPE(
   VID                  VARCHAR2(100) NOT NULL,
   LOGICAL_LIBRARY_NAME VARCHAR2(100) NOT NULL,
@@ -140,107 +96,77 @@ CREATE TABLE TAPE(
   IS_DISABLED          INTEGER       NOT NULL,
   IS_FULL              INTEGER       NOT NULL,
   LBP_IS_ON            INTEGER       NOT NULL,
-
   LABEL_DRIVE VARCHAR2(100) NOT NULL,
   LABEL_TIME  INTEGER NOT NULL,
-
   LAST_READ_DRIVE  VARCHAR2(100) NOT NULL,
   LAST_READ_TIME   INTEGER       NOT NULL,
   LAST_WRITE_DRIVE VARCHAR2(100) NOT NULL,
   LAST_WRITE_TIME  INTEGER       NOT NULL,
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT TAPE_PK PRIMARY KEY(VID),
-
   CONSTRAINT TAPE_LOGICAL_LIBRARY_FK FOREIGN KEY(LOGICAL_LIBRARY_NAME)
     REFERENCES LOGICAL_LIBRARY(LOGICAL_LIBRARY_NAME),
   CONSTRAINT TAPE_TAPE_POOL_FK FOREIGN KEY(TAPE_POOL_NAME)
     REFERENCES TAPE_POOL(TAPE_POOL_NAME)
 );
-
 CREATE TABLE MOUNT_POLICY(
   MOUNT_POLICY_NAME VARCHAR2(100) NOT NULL,
-
   ARCHIVE_PRIORITY        INTEGER NOT NULL,
   ARCHIVE_MIN_REQUEST_AGE INTEGER NOT NULL,
-
   RETRIEVE_PRIORITY        INTEGER NOT NULL,
   RETRIEVE_MIN_REQUEST_AGE INTEGER NOT NULL,
-
   MAX_DRIVES_ALLOWED INTEGER NOT NULL,
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT MOUNT_POLICY_PK PRIMARY KEY(MOUNT_POLICY_NAME)
 );
-
 CREATE TABLE REQUESTER(
   REQUESTER_NAME VARCHAR2(100) NOT NULL,
-
   MOUNT_POLICY_NAME VARCHAR2(100) NOT NULL,
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT REQUESTER_PK PRIMARY KEY(REQUESTER_NAME),
-
   CONSTRAINT REQUESTER_MOUNT_POLICY_FK FOREIGN KEY(MOUNT_POLICY_NAME)
     REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)
 );
-
 CREATE TABLE REQUESTER_GROUP(
   REQUESTER_GROUP_NAME VARCHAR2(100) NOT NULL,
-
   MOUNT_POLICY_NAME VARCHAR2(100) NOT NULL,
-
   USER_COMMENT VARCHAR2(1000) NOT NULL,
-
   CREATION_LOG_USER_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_GROUP_NAME VARCHAR2(100) NOT NULL,
   CREATION_LOG_HOST_NAME  VARCHAR2(100) NOT NULL,
   CREATION_LOG_TIME       INTEGER       NOT NULL,
-
   LAST_UPDATE_USER_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_GROUP_NAME VARCHAR2(100) NOT NULL,
   LAST_UPDATE_HOST_NAME  VARCHAR2(100) NOT NULL,
   LAST_UPDATE_TIME       INTEGER       NOT NULL,
-
   CONSTRAINT REQUESTER_GROUP_PK PRIMARY KEY(REQUESTER_GROUP_NAME),
-
   CONSTRAINT REQUESTER_GRP_MOUNT_POLICY_FK FOREIGN KEY(MOUNT_POLICY_NAME)
     REFERENCES MOUNT_POLICY(MOUNT_POLICY_NAME)
 );
-
 CREATE TABLE ARCHIVE_FILE(
   ARCHIVE_FILE_ID    INTEGER       NOT NULL,
   DISK_INSTANCE      VARCHAR2(100) NOT NULL,
@@ -251,33 +177,23 @@ CREATE TABLE ARCHIVE_FILE(
   STORAGE_CLASS_NAME VARCHAR2(100) NOT NULL,
   CREATION_TIME      INTEGER       NOT NULL,
   LAST_UPDATE_TIME   INTEGER       NOT NULL,
-
   RECOVERY_PATH  VARCHAR2(2000) NOT NULL,
   RECOVERY_OWNER VARCHAR2(100)  NOT NULL,
   RECOVERY_GROUP VARCHAR2(100)  NOT NULL,
   RECOVERY_BLOB  VARCHAR2(100)  NOT NULL,
-
   CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID),
-
   CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_NAME) 
     REFERENCES STORAGE_CLASS(STORAGE_CLASS_NAME),
-
   CONSTRAINT ARCHIVE_FILE_DSK_INST_FILE_UN UNIQUE(DISK_INSTANCE, DISK_FILE_ID)
 );
-
 CREATE TABLE TAPE_FILE(
   VID             VARCHAR2(100) NOT NULL,
   FSEQ            INTEGER       NOT NULL,
   BLOCK_ID        INTEGER       NOT NULL,
   CREATION_TIME   INTEGER       NOT NULL,
   ARCHIVE_FILE_ID INTEGER       NOT NULL,
-
   CONSTRAINT TAPE_FILE_PK PRIMARY KEY(VID, FSEQ),
-
   CONSTRAINT TAPE_FILE_ARCHIVE_FILE_FK FOREIGN KEY(ARCHIVE_FILE_ID)
     REFERENCES ARCHIVE_FILE(ARCHIVE_FILE_ID),
-
   CONSTRAINT TAPE_FILE_FSEQ_BLOCK_ID_UN UNIQUE(FSEQ, BLOCK_ID)
 );
-
-QUIT
diff --git a/catalogue/drop_catalogue_schema.sql b/catalogue/drop_catalogue_schema.sql
new file mode 100644
index 0000000000000000000000000000000000000000..6785ba5d72d85ca52baeadb8dd95a200115b5439
--- /dev/null
+++ b/catalogue/drop_catalogue_schema.sql
@@ -0,0 +1,12 @@
+DROP TABLE ARCHIVE_ROUTE;
+DROP TABLE TAPE_FILE;
+DROP TABLE ARCHIVE_FILE;
+DROP TABLE TAPE;
+DROP TABLE REQUESTER;
+DROP TABLE REQUESTER_GROUP;
+DROP TABLE ADMIN_USER;
+DROP TABLE ADMIN_HOST;
+DROP TABLE STORAGE_CLASS;
+DROP TABLE TAPE_POOL;
+DROP TABLE LOGICAL_LIBRARY;
+DROP TABLE MOUNT_POLICY;