diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 41eb854438ae39659a21c3c8e2072271d5dbb5a4..ecc25345ebdac4956b9b544676852011f74e7c73 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,9 +1,5 @@
 image: node
 
-before_script:
-  - apt-get update
-
-
 stages:
   - build
   - test
@@ -24,6 +20,7 @@ build_war:
     paths:
       - minerva.war
   script:
+    - apt-get update
     - apt-get install -y curl sudo gnupg git openjdk-8-jdk ant maven
     - curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
     - sudo apt-get install -y nodejs
@@ -35,10 +32,13 @@ build_debian_package:
   stage: build
   only:
     - tags
+  tags:
+     - privileged
   artifacts:
     paths:
       - "debian/*.deb"
   script:
+    - apt-get update
     - apt-get install -y curl sudo gnupg git openjdk-8-jdk ant maven dh-make build-essential lintian devscripts xsltproc fakeroot xsltproc docbook-xsl
     - curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
     - sudo apt-get install -y nodejs
@@ -46,3 +46,42 @@ build_debian_package:
     - export DEBEMAIL="piotr.gawron@uni.lu"
     - ant debian-pkg
 
+test_install_debian_package:
+  image: debian
+  stage: test
+  only:
+    - tags
+# we need to run it in privileged mode due to: https://stackoverflow.com/questions/29683231/tomcat7-fail-to-start-inside-ubuntu-docker-container
+  tags:
+     - privileged
+  services:
+     - name: piotrgawron/debian-repo
+       alias: debian-repo
+  dependencies:
+     - build_debian_package
+  script:
+     - apt-get update
+     - apt-get install -y ssh software-properties-common dirmngr wget curl
+     - debian_file=$(ls debian/*.deb)
+     - echo "PUT $debian_file /docker/incoming" | sftp -o StrictHostKeyChecking=no user@debian-repo
+     - ssh root@debian-repo /usr/local/sbin/reprepro-import
+     - apt-add-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main"
+     - apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
+     - apt-add-repository "deb http://debian-repo/ unstable main"
+     - apt-get update
+# auto accept oracle license
+     - echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
+#hacky way of installing minerva on docker - by default rc-invoke is preventing services changes on docker
+     - mv /usr/sbin/policy-rc.d /usr/sbin/policy-rc.d.backup
+     - mv Docker/policy-rc.d /usr/sbin/policy-rc.d
+     - apt-get install -y --allow-unauthenticated minerva
+     - mv /usr/sbin/policy-rc.d.backup /usr/sbin/policy-rc.d 
+     - service tomcat8 start
+#we need to wait a bit for tomcat start
+     - sleep 15
+     - wget http://localhost:8080/minerva/
+#test if we can login and list projects
+     - test 200 = $(curl --write-out %{http_code} --silent --output /dev/null -c cookie.txt http://localhost:8080/minerva/api/doLogin)
+     - test 200 = $(curl --write-out %{http_code} --silent --output /dev/null --cookie cookie.txt http://localhost:8080/minerva/api/projects/)
+
+
diff --git a/CHANGELOG b/CHANGELOG
index 096daa0c19c2d10a1ba292251c3e94eee9423a81..cf80b16b0fec961e1a72a1f702e5faa7b181475b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,16 @@
+minerva (12.1.0~alpha.0) experimental; urgency=medium
+  * Feature: genome browser with gene variants
+  * Feature: support of all CellDesigner element modifications
+  * Feature: ldap authentication
+  * Feature: multicolored anchors for data overlays
+  * Bug fix: annotations for elements with mutation in name (like "BID (p15)")
+    weren't provided properly
+  * Small improvement: annotations from RHEA are handled
+  * Small improvement: description of a grouped results in improved
+  * Small improvement: selection of required annotation on map upload improved
+
+ -- Piotr Gawron <piotr.gawron@uni.lu>  Wed, 25 Jul 2018 10:00:00 +0200
+
 minerva (12.0.1) stable; urgency=medium
   * Bug fix: setting default zoom level on submap
   * Bug fix: opened submap had different background then current selection
@@ -8,7 +21,7 @@ minerva (12.0.1) stable; urgency=medium
   * Bug fix: map is repositioned when info window is outside of current view in
     OpenLayers library
 
- -- Piotr Gawron <piotr.gawron@uni.lu>  Wed, 22 Jul 2018 10:00:00 +0200
+ -- Piotr Gawron <piotr.gawron@uni.lu>  Tue, 24 Jul 2018 10:00:00 +0200
 
 minerva (12.0.0) stable; urgency=medium
   * Feature: There is alternative OpenLayers map engine available
diff --git a/converter-sbml/pom.xml b/converter-sbml/pom.xml
index d7cdf3e98113ccf7c6778c3ad968561a6d70ba5d..c540e49ed44dc3876be6c8bf9f5b69c29ad5b333 100644
--- a/converter-sbml/pom.xml
+++ b/converter-sbml/pom.xml
@@ -1,7 +1,8 @@
 <?xml version="1.0"?>
 <project
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
 		<groupId>lcsb.mapviewer</groupId>
@@ -75,8 +76,8 @@
 		<dependency>
 			<groupId>org.sbml.jsbml</groupId>
 			<artifactId>jsbml</artifactId>
-			<version>1.2</version>
-			<!-- for now we use lower version of log4j and this one introduce some
+			<version>1.3.1</version>
+			<!-- for now we use lower version of log4j and this one introduce some 
 				problem with tomcat loggin -->
 			<exclusions>
 				<exclusion>
@@ -91,6 +92,10 @@
 					<groupId>org.apache.logging.log4j</groupId>
 					<artifactId>log4j-1.2-api</artifactId>
 				</exclusion>
+				<exclusion>
+					<groupId>org.slf4j</groupId>
+					<artifactId>slf4j-api</artifactId>
+				</exclusion>
 			</exclusions>
 		</dependency>
 
diff --git a/debian/create-debian-pkg.sh b/debian/create-debian-pkg.sh
index 1da14fa3436067f4a90d5deb5eecfa90b07266ec..c3b78f2e24dfd06796845c2acfb556ca76ca5218 100755
--- a/debian/create-debian-pkg.sh
+++ b/debian/create-debian-pkg.sh
@@ -22,7 +22,7 @@ DOC_DIR=doc
 TOMCAT_FILE=web/target/web-1.0.war
 
 #Directory with database schema
-DB_SCHEMA_DIR=persist/src/db
+DB_SCHEMA_DIR=persist/src/main/resources/db/migration
 
 ROOT_DIR=`pwd`
 
@@ -46,7 +46,7 @@ cp $DB_SCHEMA_DIR/base.sql $SRC_DIR/db_0.sql
 
 #copy manual documentation
 cp $DOC_DIR/description.txt $SRC_DIR/minerva.txt
-gzip $SRC_DIR/minerva.txt
+gzip -n $SRC_DIR/minerva.txt
 
 #copy configuration of logrotate
 cp debian/logrotate/* $SRC_DIR/
@@ -58,16 +58,18 @@ cp CHANGELOG $ROOT_DIR/debian/template/changelog
 
 # set $versions and $current_version; generate upgrade scripts in SRC_DIR
 DBSCRIPT_DEST_DIR=$SRC_DIR
+MAX_DB_VERSION_FOR_MIGRTION=12.1.0~alpha
 source $dbschemadiff
 
 echo "Current version: " $current_version
+echo "Flyway was introduced in version: " $MAX_DB_VERSION_FOR_MIGRTION
 
 # check if the changelog contains info about new version
 tmpVar=`cat debian/template/changelog | grep "minerva ($current_version)"|wc -l`
 if [ $tmpVar -eq "0" ] 
 then
 	echo "Invalid changelog file. Please modify debian/template/changelog to contain information about current version";
-	exit 1;
+	e-n xit 1;
 fi
 
 
@@ -120,6 +122,7 @@ sed -i "s/__DB_PORT__/$DB_PORT/g" common.sh
 sed -i "s/__DB_DATABASE_NAME__/$DB_DATABASE_NAME/g" common.sh
 sed -i "s/__DB_USERNAME__/$DB_USERNAME/g" common.sh
 sed -i "s/__DB_PASSWORD__/$DB_PASSWORD/g" common.sh
+sed -i "s/__MAX_DB_VERSION_FOR_MIGRTION__/$MAX_DB_VERSION_FOR_MIGRTION/g" common.sh
 
 sed -i -e "1r common.sh" debian/postinst
 sed -i -e "1r common.sh" debian/postrm
@@ -132,12 +135,12 @@ sed -i -e "1r common.sh" debian/prerm
 #put scripts into $DB_SCRIPT_DIR (it's a bit different than varaiable because it's not
 #escaped
 echo db_0.sql /usr/share\/minerva/schema >> debian/install
-echo db_0_to_$current_version".sql" /usr/share/minerva/schema >> debian/install
+echo db_0_to_$MAX_DB_VERSION_FOR_MIGRTION".sql" /usr/share/minerva/schema >> debian/install
 for version in ${versions[*]}
 do
 	if [ "$version" != "$current_version" ]
 	then
-		echo db_"$version"_to_$current_version".sql" /usr/share/minerva/schema >> debian/install;
+		echo db_"$version"_to_$MAX_DB_VERSION_FOR_MIGRTION".sql" /usr/share/minerva/schema >> debian/install;
 	fi
 done
 
@@ -152,7 +155,8 @@ echo minerva.txt.gz /usr/share/doc/minerva/minerva.txt.gz >> debian/install;
 echo minerva /etc/logrotate.d >> debian/install;
 
 #remove some sample file
-rm debian/package.doc-base.EX
+rm debian/*.EX
+rm debian/*.ex
 
 #build debian package
 debuild -us -uc
diff --git a/debian/scripts/common.sh b/debian/scripts/common.sh
index 2b5d61837f794dd009b68265814570874af93999..f35028769d1d5a9f021b51df170dac4642072962 100644
--- a/debian/scripts/common.sh
+++ b/debian/scripts/common.sh
@@ -5,6 +5,7 @@ log(){
 LOG_FILE="__LOG_FILE__"
 
 DB_SCRIPT_DIR="__DB_SCRIPT_DIR__"
+MAX_DB_VERSION_FOR_MIGRTION="__MAX_DB_VERSION_FOR_MIGRTION__"
 
 #new (current) version of the package
 CURRENT_VERSION="__CURRENT_VERSION__"
diff --git a/debian/template/control b/debian/template/control
index dcb5946ab20574544cfcc59508f78714bc39af25..c78e976a65563855a1ecd6952443c8c10fdb551b 100644
--- a/debian/template/control
+++ b/debian/template/control
@@ -1,7 +1,7 @@
 Source: minerva
 Priority: optional
 Maintainer: Piotr Gawron <piotr.gawron@uni.lu>
-Standards-Version: 3.9.6
+Standards-Version: 3.9.7
 #Vcs-Git: git://anonscm.debian.org/collab-maint/minerva.git
 #Vcs-Browser: http://anonscm.debian.org/?p=collab-maint/minerva.git;a=summary
 
diff --git a/debian/template/postinst b/debian/template/postinst
index 35037021f7e211c44b71872a9db765295f72f101..bba24dc6df89538365afd4b679d76c3c7bd20d87 100644
--- a/debian/template/postinst
+++ b/debian/template/postinst
@@ -31,11 +31,15 @@ case "$1" in
 			#install base version of the framework
 			exec_sql_file "$DB_SCRIPT_DIR/db_0.sql"
 			#install patch to current version
-			exec_sql_file "$DB_SCRIPT_DIR/db_0_to_${CURRENT_VERSION}.sql"
+			exec_sql_file "$DB_SCRIPT_DIR/db_0_to_${MAX_DB_VERSION_FOR_MIGRTION}.sql"
 
 		else
 			#if we update the package
-			exec_sql_file "$DB_SCRIPT_DIR/db_${OLD_VERSION}_to_${CURRENT_VERSION}.sql"
+			if [ -f $DB_SCRIPT_DIR/db_${OLD_VERSION}_to_${MAX_DB_VERSION_FOR_MIGRTION}.sql ]; then
+				exec_sql_file "$DB_SCRIPT_DIR/db_${OLD_VERSION}_to_${MAX_DB_VERSION_FOR_MIGRTION}.sql"
+			else
+				log "INFO: File doesn't exist: $DB_SCRIPT_DIR/db_${OLD_VERSION}_to_${MAX_DB_VERSION_FOR_MIGRTION}.sql"
+			fi
 		fi
 
 		#print a disclaimer
diff --git a/management_scripts/db_schema_and_diff.sh b/management_scripts/db_schema_and_diff.sh
index c6c0783e00fec80662cdb30d86aec5ed637e53a2..918415cd5a4d67c0703cdb703418f47de7090c59 100644
--- a/management_scripts/db_schema_and_diff.sh
+++ b/management_scripts/db_schema_and_diff.sh
@@ -4,8 +4,9 @@
 # files)
 
 # Precondition: the following variables have to be correctly initialised
-# * DB_SCHEMA_DIR        set to the directory containing database initialisation and upgrade sql commands
-# * DBSCRIPT_DEST_DIR    set to the directory that will be populated with database upgrade scripts
+# * DB_SCHEMA_DIR                 set to the directory containing database initialisation and upgrade sql commands
+# * DBSCRIPT_DEST_DIR             set to the directory that will be populated with database upgrade scripts
+# * MAX_DB_VERSION_FOR_MIGRTION   set to the max version number that should be used for generating migration scripts; further version will be managed by flyway
 
 # Postcondition:
 # * versions is set to the available MINERVA versions (bash array)
@@ -20,12 +21,22 @@ versions=();
 current_version=-1;
 
 #find all available versions
+versionCompLte() {
+    [  "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ]
+}
 
+
+versionCompLt() {
+    [ "$1" = "$2" ] && return 1 || versionCompLte $1 $2
+}
 for version in `ls "$DB_SCHEMA_DIR" | sort -V`;
 do
 	if [ -d "$DB_SCHEMA_DIR/$version" ]
 	then
-		versions+=($version);
+		if versionCompLt $version $MAX_DB_VERSION_FOR_MIGRTION
+		then
+			versions+=($version);
+		fi
 		current_version=$version;
 	fi
 done
@@ -34,28 +45,24 @@ done
 # GENERATE DB schemas and diff files
 #--------------------------------------
 
-versionCompLte() {
-    [  "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ]
-}
-
-
-versionCompLt() {
-    [ "$1" = "$2" ] && return 1 || versionCompLte $1 $2
-}
+for version_A in ${versions[*]}
+do
+	touch $DBSCRIPT_DEST_DIR/db_${version_A}_to_${MAX_DB_VERSION_FOR_MIGRTION}.sql
+done
 
 #last version (used for generating db diff files)
 for version_A in ${versions[*]}
 do
 	#main update file (used to create this version - it's a diff
-	#between base.sql and current version)
-	update_file="$DBSCRIPT_DEST_DIR/db_0_to_${current_version}.sql";
+	#between base.sql and last version not managed by flyway)
+	update_file="$DBSCRIPT_DEST_DIR/db_0_to_${MAX_DB_VERSION_FOR_MIGRTION}.sql";
 
 	#now iterate through all versions
 	for file in `ls "$DB_SCHEMA_DIR/$version_A" | sort -V`;
 	do
 		if [ -f "$DB_SCHEMA_DIR/$version_A/$file" ]
 		then
-			#add difference to current db schema diff
+			#add db schema diff to last version  not managed by flyway
 			printf "\n\n-- UPDATE $version_A/$file\n\n" >> "$update_file";
 			cat "$DB_SCHEMA_DIR/$version_A/$file" >> "$update_file";
 
@@ -67,7 +74,7 @@ do
 				#after #version_B (so version_A must be later)
 				if versionCompLt $version_B $version_A 
 				then
-					upd_file="$DBSCRIPT_DEST_DIR/db_${version_B}_to_${current_version}.sql";
+					upd_file="$DBSCRIPT_DEST_DIR/db_${version_B}_to_${MAX_DB_VERSION_FOR_MIGRTION}.sql";
 					printf "\n\n-- UPDATE $version_A/$file\n\n" >> "$upd_file";
 					cat "$DB_SCHEMA_DIR/$version_A/$file" >> "$upd_file";
 				fi
diff --git a/persist/pom.xml b/persist/pom.xml
index 1428bbc4852bc65be0c1840b34e6249f1c40f6d3..5a6cd0fff26561bddb438d4f1912aa9373c10c1c 100644
--- a/persist/pom.xml
+++ b/persist/pom.xml
@@ -1,70 +1,76 @@
-<project 
-	xmlns="http://maven.apache.org/POM/4.0.0" 
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
 		http://maven.apache.org/xsd/maven-4.0.0.xsd">
-		
+
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
 		<groupId>lcsb.mapviewer</groupId>
 		<artifactId>parent</artifactId>
 		<version>1.0</version>
 	</parent>
-	
+
 	<artifactId>persist</artifactId>
 	<name>MapViewer persist</name>
 	<description>Data Access Interface to the model</description>
 
 	<dependencies>
 
-	<!-- dependency from the MapViewer model -->
+		<!-- https://mvnrepository.com/artifact/org.flywaydb/flyway-core -->
+		<dependency>
+			<groupId>org.flywaydb</groupId>
+			<artifactId>flyway-core</artifactId>
+			<version>${flyway.version}</version>
+		</dependency>
+
+		<!-- dependency from the MapViewer model -->
 		<dependency>
 			<groupId>lcsb.mapviewer</groupId>
 			<artifactId>model</artifactId>
 			<version>1.0</version>
 		</dependency>
 
-<!-- apache ftp -->
-<dependency>
-    <groupId>commons-net</groupId>
-    <artifactId>commons-net</artifactId>
-    <version>${commons-net.version}</version>
-</dependency>
+		<!-- apache ftp -->
+		<dependency>
+			<groupId>commons-net</groupId>
+			<artifactId>commons-net</artifactId>
+			<version>${commons-net.version}</version>
+		</dependency>
 
-	<!-- Hibernate -->
- 		<dependency>
+		<!-- Hibernate -->
+		<dependency>
 			<groupId>org.hibernate</groupId>
 			<artifactId>hibernate-core</artifactId>
- 			<version>${hibernate.version}</version>
+			<version>${hibernate.version}</version>
 			<exclusions>
 				<exclusion>
 					<artifactId>xml-apis</artifactId>
 					<groupId>xml-apis</groupId>
 				</exclusion>
 			</exclusions>
- 		</dependency>
- 		
- 		<!-- Library excluded from above; it was in conflict with Xerces -->
- 		<dependency>
- 			<groupId>xml-apis</groupId>
- 			<artifactId>xml-apis</artifactId>
- 			<version>${xml-apis.version}</version>
- 		</dependency>
-		
-	<!-- Log4J -->
+		</dependency>
+
+		<!-- Library excluded from above; it was in conflict with Xerces -->
+		<dependency>
+			<groupId>xml-apis</groupId>
+			<artifactId>xml-apis</artifactId>
+			<version>${xml-apis.version}</version>
+		</dependency>
+
+		<!-- Log4J -->
 		<dependency>
 			<groupId>log4j</groupId>
 			<artifactId>log4j</artifactId>
 			<version>${log4j.version}</version>
 		</dependency>
-		
-	<!-- Spring -->
+
+		<!-- Spring -->
 		<dependency>
 			<groupId>org.springframework</groupId>
 			<artifactId>spring-core</artifactId>
 			<version>${springframework.version}</version>
 		</dependency>
-		
+
 		<dependency>
 			<groupId>org.springframework</groupId>
 			<artifactId>spring-context</artifactId>
@@ -84,28 +90,28 @@
 		</dependency>
 
 
-	<!-- spring module used for conneting orm (hibernate in our case) -->
+		<!-- spring module used for conneting orm (hibernate in our case) -->
 		<dependency>
 			<groupId>org.springframework</groupId>
 			<artifactId>spring-orm</artifactId>
 			<version>${springframework.version}</version>
 		</dependency>
-		
-	<!-- spring module used for password encoding -->
+
+		<!-- spring module used for password encoding -->
 		<dependency>
 			<groupId>org.springframework.security</groupId>
 			<artifactId>spring-security-taglibs</artifactId>
 			<version>${springframework.security.version}</version>
 		</dependency>
 
-	<!-- spring module used for testing -->
+		<!-- spring module used for testing -->
 		<dependency>
 			<groupId>org.springframework</groupId>
 			<artifactId>spring-test</artifactId>
 			<version>${springframework.version}</version>
 		</dependency>
-		
-	<!-- postgres connector -->
+
+		<!-- postgres connector -->
 		<dependency>
 			<groupId>postgresql</groupId>
 			<artifactId>postgresql</artifactId>
@@ -122,16 +128,16 @@
 			<groupId>cglib</groupId>
 			<artifactId>cglib</artifactId>
 			<version>${cglib.version}</version>
-		</dependency>			
+		</dependency>
 
-	<!-- Gson -->
+		<!-- Gson -->
 		<dependency>
 			<groupId>com.google.code.gson</groupId>
 			<artifactId>gson</artifactId>
 			<version>${gson.version}</version>
 			<scope>compile</scope>
 		</dependency>
-		
+
 	</dependencies>
 
 </project>
\ No newline at end of file
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/CustomDatabasePopulator.java b/persist/src/main/java/lcsb/mapviewer/persist/CustomDatabasePopulator.java
new file mode 100644
index 0000000000000000000000000000000000000000..7b1c033ddb46448b95422d708d718038e6a8da93
--- /dev/null
+++ b/persist/src/main/java/lcsb/mapviewer/persist/CustomDatabasePopulator.java
@@ -0,0 +1,41 @@
+package lcsb.mapviewer.persist;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
+import org.apache.log4j.Logger;
+import org.flywaydb.core.Flyway;
+import org.springframework.jdbc.datasource.init.DatabasePopulator;
+import org.springframework.jdbc.datasource.init.ScriptException;
+
+import com.mchange.v2.c3p0.ComboPooledDataSource;
+
+public class CustomDatabasePopulator implements DatabasePopulator {
+  Logger logger = Logger.getLogger(CustomDatabasePopulator.class);
+
+  private DataSource dataSource;
+
+  @Override
+  public void populate(Connection connection) throws SQLException, ScriptException {
+    ComboPooledDataSource source = (ComboPooledDataSource) dataSource;
+    String url = source.getJdbcUrl();
+    String user = source.getUser();
+    String password = source.getPassword();
+    Flyway flyway = new Flyway();
+    flyway.setDataSource(url, user, password);
+    flyway.setBaselineVersionAsString("12.1.0");
+    flyway.setBaselineOnMigrate(true);
+    flyway.migrate();
+
+  }
+
+  public DataSource getDataSource() {
+    return dataSource;
+  }
+
+  public void setDataSource(DataSource dataSource) {
+    this.dataSource = dataSource;
+  }
+}
diff --git a/persist/src/main/java/lcsb/mapviewer/persist/DbUtils.java b/persist/src/main/java/lcsb/mapviewer/persist/DbUtils.java
index b217ec45d3f286b951bb242ddf78ce2ef345e946..e7d0a0c1a414da1de57bbefceaa2b721bc2e6678 100644
--- a/persist/src/main/java/lcsb/mapviewer/persist/DbUtils.java
+++ b/persist/src/main/java/lcsb/mapviewer/persist/DbUtils.java
@@ -9,12 +9,17 @@ import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
 import org.apache.log4j.Logger;
+import org.flywaydb.core.Flyway;
 import org.hibernate.SQLQuery;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
+import org.hibernate.internal.SessionFactoryImpl;
 import org.hibernate.jmx.StatisticsService;
+import org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import com.mchange.v2.c3p0.ComboPooledDataSource;
+
 import lcsb.mapviewer.common.exception.InvalidStateException;
 
 /**
@@ -33,275 +38,275 @@ import lcsb.mapviewer.common.exception.InvalidStateException;
  */
 @SuppressWarnings("deprecation")
 public class DbUtils extends Observable {
-	
-	/**
-	 * Default class logger.
-	 */
-	private static Logger							logger						= Logger.getLogger(DbUtils.class);
 
-	/**
-	 * Hibernate session factory.
-	 */
-	@Autowired
-	private SessionFactory						sessionFactory;
+  /**
+   * Default class logger.
+   */
+  private static Logger logger = Logger.getLogger(DbUtils.class);
+
+  /**
+   * Hibernate session factory.
+   */
+  @Autowired
+  private SessionFactory sessionFactory;
 
-	/**
-	 * Service used for connection statistics.
-	 */
-	private StatisticsService					statisticsService;
+  /**
+   * Service used for connection statistics.
+   */
+  private StatisticsService statisticsService;
 
-	/**
-	 * This flag indicates if the object was initialized or not.
-	 * 
-	 * @see #init()
-	 */
-	private boolean										initialized				= false;
-	
-	/**
-	 * Bean used for statistics.
-	 */
-	private MBeanServer								mbeanServer;
+  /**
+   * This flag indicates if the object was initialized or not.
+   * 
+   * @see #init()
+   */
+  private boolean initialized = false;
 
-	/**
-	 * Static map containing opened custom sessions. This object is also used for
-	 * synchronization between threads when accessing informations about sessions.
-	 */
-	private static Map<Long, Session>	sessionForThread	= new HashMap<Long, Session>();
+  /**
+   * Bean used for statistics.
+   */
+  private MBeanServer mbeanServer;
 
-	/**
-	 * This determines if every add/update/delete operation should be flushed (for
-	 * specific {@link Thread}). There are few drawbacks of this approach:
-	 * <ol>
-	 * <li>when autoflushing is set to false, then the data consistency could be
-	 * broken (even in the same thread/transaction)</li>,
-	 * <li>we have to automatically take care of the flushing, therefore there
-	 * might be some problems with long transactions.</li>
-	 * </ol>
-	 */
-	private static Map<Long, Boolean>	autoFlushForThread = new HashMap<>();
+  /**
+   * Static map containing opened custom sessions. This object is also used for
+   * synchronization between threads when accessing informations about sessions.
+   */
+  private static Map<Long, Session> sessionForThread = new HashMap<Long, Session>();
 
-	/**
-	 * This method initialize services responsible for statistics.
-	 */
-	private void init() {
-		if (!initialized) {
-			if (SpringApplicationContext.getApplicationContext().containsBean("mbeanServer")) {
-				logger.info("Hibernate statistics turned on");
-				mbeanServer = SpringApplicationContext.getApplicationContext().getBean(MBeanServer.class);
-				statisticsService = new StatisticsService();
-				statisticsService.setSessionFactory(sessionFactory);
-				statisticsService.setStatisticsEnabled(true);
-				ObjectName objectName;
-				try {
-					objectName = new ObjectName("org.hibernate:name=HibernateStatistics");
+  /**
+   * This determines if every add/update/delete operation should be flushed (for
+   * specific {@link Thread}). There are few drawbacks of this approach:
+   * <ol>
+   * <li>when autoflushing is set to false, then the data consistency could be
+   * broken (even in the same thread/transaction)</li>,
+   * <li>we have to automatically take care of the flushing, therefore there might
+   * be some problems with long transactions.</li>
+   * </ol>
+   */
+  private static Map<Long, Boolean> autoFlushForThread = new HashMap<>();
 
-					mbeanServer.registerMBean(statisticsService, objectName);
-				} catch (Exception e) {
-					logger.error(e, e);
-				}
-			} else {
-				logger.info("Hibernate statistics turned off");
-			}
-		}
-		initialized = true;
+  /**
+   * This method initialize services responsible for statistics.
+   */
+  private void init() {
+    if (!initialized) {
+      if (SpringApplicationContext.getApplicationContext().containsBean("mbeanServer")) {
+        logger.info("Hibernate statistics turned on");
+        mbeanServer = SpringApplicationContext.getApplicationContext().getBean(MBeanServer.class);
+        statisticsService = new StatisticsService();
+        statisticsService.setSessionFactory(sessionFactory);
+        statisticsService.setStatisticsEnabled(true);
+        ObjectName objectName;
+        try {
+          objectName = new ObjectName("org.hibernate:name=HibernateStatistics");
 
-	}
+          mbeanServer.registerMBean(statisticsService, objectName);
+        } catch (Exception e) {
+          logger.error(e, e);
+        }
+      } else {
+        logger.info("Hibernate statistics turned off");
+      }
+    }
+    initialized = true;
 
-	/**
-	 * Executes sql query given in the parameter.
-	 * 
-	 * @param query
-	 *          sql query to be executed
-	 * @return The number of entities updated or deleted.
-	 */
-	public int executeSqlQuery(String query) {
-		return executeSqlQuery(query, new HashMap<String, Object>());
-	}
+  }
 
-	/**
-	 * Executes sql query given in the parameter.
-	 * 
-	 * @param query
-	 *          sql query to be executed
-	 * @param params
-	 *          map of parameters used in the query
-	 * @return The number of entities updated or deleted.
-	 */
-	public int executeSqlQuery(String query, Map<String, Object> params) {
-		SQLQuery sqlQuery = getSessionFactory().getCurrentSession().createSQLQuery(query);
+  /**
+   * Executes sql query given in the parameter.
+   * 
+   * @param query
+   *          sql query to be executed
+   * @return The number of entities updated or deleted.
+   */
+  public int executeSqlQuery(String query) {
+    return executeSqlQuery(query, new HashMap<String, Object>());
+  }
 
-		for (Entry<String, Object> entry : params.entrySet()) {
-			sqlQuery.setParameter(entry.getKey(), entry.getValue());
-		}
-		return sqlQuery.executeUpdate();
-	}
+  /**
+   * Executes sql query given in the parameter.
+   * 
+   * @param query
+   *          sql query to be executed
+   * @param params
+   *          map of parameters used in the query
+   * @return The number of entities updated or deleted.
+   */
+  public int executeSqlQuery(String query, Map<String, Object> params) {
+    SQLQuery sqlQuery = getSessionFactory().getCurrentSession().createSQLQuery(query);
 
-	/**
-	 * Returns hibernate session for current thread.
-	 * 
-	 * @return session for the current thread
-	 */
-	public Session getSessionForCurrentThread() {
-		Long id = Thread.currentThread().getId();
-		Session session = null;
-		synchronized (sessionForThread) {
-			session = sessionForThread.get(id);
-		}
-		if (session == null) {
-			session = sessionFactory.getCurrentSession();
-		}
-		return session;
-	}
+    for (Entry<String, Object> entry : params.entrySet()) {
+      sqlQuery.setParameter(entry.getKey(), entry.getValue());
+    }
+    return sqlQuery.executeUpdate();
+  }
 
-	/**
-	 * Closes custom session for current thread.
-	 */
-	public void closeSessionForCurrentThread() {
-		Long id = Thread.currentThread().getId();
-		Session session = null;
-		synchronized (sessionForThread) {
-			session = sessionForThread.get(id);
-			sessionForThread.remove(id);
-		}
-		if (session != null) {
-			logger.debug("Closing session for thread: " + id);
-			session.getTransaction().commit();
+  /**
+   * Returns hibernate session for current thread.
+   * 
+   * @return session for the current thread
+   */
+  public Session getSessionForCurrentThread() {
+    Long id = Thread.currentThread().getId();
+    Session session = null;
+    synchronized (sessionForThread) {
+      session = sessionForThread.get(id);
+    }
+    if (session == null) {
+      session = sessionFactory.getCurrentSession();
+    }
+    return session;
+  }
 
-			session.close();
-			int counter = -1;
-			synchronized (sessionForThread) {
-				sessionForThread.remove(id);
-				counter = sessionForThread.size();
-			}
-			synchronized (autoFlushForThread) {
-				autoFlushForThread.remove(id);
-			}
-			setChanged();
-			notifyObservers(counter);
-			logger.debug("Session closed for thread: " + id);
-		}
-	}
+  /**
+   * Closes custom session for current thread.
+   */
+  public void closeSessionForCurrentThread() {
+    Long id = Thread.currentThread().getId();
+    Session session = null;
+    synchronized (sessionForThread) {
+      session = sessionForThread.get(id);
+      sessionForThread.remove(id);
+    }
+    if (session != null) {
+      logger.debug("Closing session for thread: " + id);
+      session.getTransaction().commit();
 
-	/**
-	 * Creates custom session for current thread.
-	 */
-	public void createSessionForCurrentThread() {
-		Long id = Thread.currentThread().getId();
-		Session session = null;
-		synchronized (sessionForThread) {
-			session = sessionForThread.get(id);
-			if (!initialized) {
-				init();
-			}
-		}
+      session.close();
+      int counter = -1;
+      synchronized (sessionForThread) {
+        sessionForThread.remove(id);
+        counter = sessionForThread.size();
+      }
+      synchronized (autoFlushForThread) {
+        autoFlushForThread.remove(id);
+      }
+      setChanged();
+      notifyObservers(counter);
+      logger.debug("Session closed for thread: " + id);
+    }
+  }
 
-		// we cannot create two threads for one session
-		if (session != null) {
-			throw new InvalidStateException("Current thread already has an active session");
-		} else {
-			logger.debug("Creating session for thread: " + id);
-			session = sessionFactory.openSession();
-			logger.debug("Session opened: " + id);
-			session.beginTransaction();
-			logger.debug("Session started: " + id);
-			if (statisticsService != null) {
-				logger.debug("Opened sessions: " + statisticsService.getSessionOpenCount() + ". Closed sessions: " + statisticsService.getSessionCloseCount());
-			}
-			Integer counter = -1;
-			synchronized (sessionForThread) {
-				sessionForThread.put(id, session);
-				counter = sessionForThread.size();
-			}
-			synchronized (autoFlushForThread) {
-				autoFlushForThread.put(id, true);
-			}
-			setChanged();
-			notifyObservers(counter);
-		}
-	}
+  /**
+   * Creates custom session for current thread.
+   */
+  public void createSessionForCurrentThread() {
+    Long id = Thread.currentThread().getId();
+    Session session = null;
+    synchronized (sessionForThread) {
+      session = sessionForThread.get(id);
+      if (!initialized) {
+        init();
+      }
+    }
 
-	/**
-	 * Returns true if custom session was opened for this thread.
-	 * 
-	 * @return <code>true</code> if custom session was created for this thread,
-	 *         <code>false</code> otherwise
-	 */
-	public boolean isCustomSessionForCurrentThread() {
-		Long id = Thread.currentThread().getId();
-		Session session = null;
-		synchronized (sessionForThread) {
-			session = sessionForThread.get(id);
-		}
-		return session != null;
+    // we cannot create two threads for one session
+    if (session != null) {
+      throw new InvalidStateException("Current thread already has an active session");
+    } else {
+      logger.debug("Creating session for thread: " + id);
+      session = sessionFactory.openSession();
+      logger.debug("Session opened: " + id);
+      session.beginTransaction();
+      logger.debug("Session started: " + id);
+      if (statisticsService != null) {
+        logger.debug("Opened sessions: " + statisticsService.getSessionOpenCount() + ". Closed sessions: "
+            + statisticsService.getSessionCloseCount());
+      }
+      Integer counter = -1;
+      synchronized (sessionForThread) {
+        sessionForThread.put(id, session);
+        counter = sessionForThread.size();
+      }
+      synchronized (autoFlushForThread) {
+        autoFlushForThread.put(id, true);
+      }
+      setChanged();
+      notifyObservers(counter);
+    }
+  }
 
-	}
+  /**
+   * Returns true if custom session was opened for this thread.
+   * 
+   * @return <code>true</code> if custom session was created for this thread,
+   *         <code>false</code> otherwise
+   */
+  public boolean isCustomSessionForCurrentThread() {
+    Long id = Thread.currentThread().getId();
+    Session session = null;
+    synchronized (sessionForThread) {
+      session = sessionForThread.get(id);
+    }
+    return session != null;
 
-	/**
-	 * Returns number of opened custom sessions.
-	 * 
-	 * @return number of sessions
-	 */
-	public int getSessionCounter() {
-		int result = -1;
-		synchronized (sessionForThread) {
-			result = sessionForThread.values().size();
-		}
-		return result;
-	}
+  }
 
-	/**
-	 * @return the sessionFactory
-	 * @see #sessionFactory
-	 */
-	public SessionFactory getSessionFactory() {
-		return sessionFactory;
-	}
+  /**
+   * Returns number of opened custom sessions.
+   * 
+   * @return number of sessions
+   */
+  public int getSessionCounter() {
+    int result = -1;
+    synchronized (sessionForThread) {
+      result = sessionForThread.values().size();
+    }
+    return result;
+  }
 
-	/**
-	 * @param sessionFactory
-	 *          the sessionFactory to set
-	 * @see #sessionFactory
-	 */
-	public void setSessionFactory(SessionFactory sessionFactory) {
-		this.sessionFactory = sessionFactory;
-	}
+  /**
+   * @return the sessionFactory
+   * @see #sessionFactory
+   */
+  public SessionFactory getSessionFactory() {
+    return sessionFactory;
+  }
 
-	/**
-	 * Returns info if the flush is automatically done or not in current
-	 * {@link Thread}.
-	 * 
-	 * @return <code>true</code> if flush is automatically done,
-	 *         <code>false</code> otherwise
-	 * @see #autoFlushForThread
-	 */
-	public boolean isAutoFlush() {
-		Long id = Thread.currentThread().getId();
-		Boolean result = true;
-		synchronized (autoFlushForThread) {
-			result = autoFlushForThread.get(id);
-		}
-		if (result == null) {
-			logger.debug("autoFlush not set for thread: " + id + ". Setting true");
-			synchronized (autoFlushForThread) {
-				autoFlushForThread.put(id, true);
-			}
-			result = true;
-		}
-		return result;
-	}
+  /**
+   * @param sessionFactory
+   *          the sessionFactory to set
+   * @see #sessionFactory
+   */
+  public void setSessionFactory(SessionFactory sessionFactory) {
+    this.sessionFactory = sessionFactory;
+  }
 
-	/**
-	 * Set autoFlush for current {@link Thread}.
-	 * 
-	 * @param autoFlush
-	 *          the ne autoflush value
-	 * @see #autoFlushForThread
-	 */
-	public void setAutoFlush(boolean autoFlush) {
-		Long id = Thread.currentThread().getId();
-		synchronized (autoFlushForThread) {
-			autoFlushForThread.put(id, autoFlush);
-		}
-	}
+  /**
+   * Returns info if the flush is automatically done or not in current
+   * {@link Thread}.
+   * 
+   * @return <code>true</code> if flush is automatically done, <code>false</code>
+   *         otherwise
+   * @see #autoFlushForThread
+   */
+  public boolean isAutoFlush() {
+    Long id = Thread.currentThread().getId();
+    Boolean result = true;
+    synchronized (autoFlushForThread) {
+      result = autoFlushForThread.get(id);
+    }
+    if (result == null) {
+      logger.debug("autoFlush not set for thread: " + id + ". Setting true");
+      synchronized (autoFlushForThread) {
+        autoFlushForThread.put(id, true);
+      }
+      result = true;
+    }
+    return result;
+  }
 
+  /**
+   * Set autoFlush for current {@link Thread}.
+   * 
+   * @param autoFlush
+   *          the new autoflush value
+   * @see #autoFlushForThread
+   */
+  public void setAutoFlush(boolean autoFlush) {
+    Long id = Thread.currentThread().getId();
+    synchronized (autoFlushForThread) {
+      autoFlushForThread.put(id, autoFlush);
+    }
+  }
 }
diff --git a/persist/src/main/resources/dataSource.xml b/persist/src/main/resources/dataSource.xml
index 5f6bc4799151317e0bd742c29acbd40b0f247f55..f21e41eec45a3bdbdb317c5bdfcc7f9284e62a31 100644
--- a/persist/src/main/resources/dataSource.xml
+++ b/persist/src/main/resources/dataSource.xml
@@ -9,18 +9,31 @@
 		http://www.springframework.org/schema/context 
 		http://www.springframework.org/schema/context/spring-context-4.0.xsd">
 
-	<context:property-placeholder ignore-resource-not-found="true" location="classpath:db.properties,file:/etc/minerva/db.properties" />
+	<context:property-placeholder
+		ignore-resource-not-found="true"
+		location="classpath:db.properties,file:/etc/minerva/db.properties" />
 
-				 
-<!-- Data Source Declaration -->
-	 <bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
+
+	<!-- Data Source Declaration -->
+	<bean id="DataSource"
+		class="com.mchange.v2.c3p0.ComboPooledDataSource"
+		destroy-method="close">
 		<property name="driverClass" value="org.postgresql.Driver" />
 		<property name="jdbcUrl" value="${database.uri}" />
 		<property name="user" value="${database.username}" />
-		<property name="password" value="${database.password}" /> 
+		<property name="password" value="${database.password}" />
 		<property name="maxPoolSize" value="90" />
 		<property name="maxStatements" value="5" />
 		<property name="minPoolSize" value="5" />
-	 </bean>
+	</bean>
+
+    <bean id="DbInit" class="lcsb.mapviewer.persist.CustomDatabasePopulator">
+        <property name="dataSource"><ref bean="DataSource"/></property>
+    </bean>
+    
+	<bean id="startupScripts" class="org.springframework.jdbc.datasource.init.DataSourceInitializer">
+        <property name="dataSource"><ref bean="DataSource"/></property>
+        <property name="databasePopulator"><ref bean="DbInit"/></property>
+    </bean>
 
 </beans>
diff --git a/persist/src/db/10.0.1/fix_db_20160907.sql b/persist/src/main/resources/db/migration/10.0.1/fix_db_20160907.sql
similarity index 100%
rename from persist/src/db/10.0.1/fix_db_20160907.sql
rename to persist/src/main/resources/db/migration/10.0.1/fix_db_20160907.sql
diff --git a/persist/src/db/10.0.1/fix_db_20160909.sql b/persist/src/main/resources/db/migration/10.0.1/fix_db_20160909.sql
similarity index 100%
rename from persist/src/db/10.0.1/fix_db_20160909.sql
rename to persist/src/main/resources/db/migration/10.0.1/fix_db_20160909.sql
diff --git a/persist/src/db/10.0.2/fix_db_20160928.sql b/persist/src/main/resources/db/migration/10.0.2/fix_db_20160928.sql
similarity index 100%
rename from persist/src/db/10.0.2/fix_db_20160928.sql
rename to persist/src/main/resources/db/migration/10.0.2/fix_db_20160928.sql
diff --git a/persist/src/db/10.0.3/fix_db_20160926.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20160926.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20160926.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20160926.sql
diff --git a/persist/src/db/10.0.3/fix_db_20160929.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20160929.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20160929.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20160929.sql
diff --git a/persist/src/db/10.0.3/fix_db_20160930.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20160930.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20160930.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20160930.sql
diff --git a/persist/src/db/10.0.3/fix_db_20161003.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20161003.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20161003.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20161003.sql
diff --git a/persist/src/db/10.0.3/fix_db_20161004.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20161004.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20161004.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20161004.sql
diff --git a/persist/src/db/10.0.3/fix_db_20161005.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20161005.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20161005.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20161005.sql
diff --git a/persist/src/db/10.0.3/fix_db_20161006.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20161006.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20161006.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20161006.sql
diff --git a/persist/src/db/10.0.3/fix_db_20161007.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20161007.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20161007.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20161007.sql
diff --git a/persist/src/db/10.0.3/fix_db_20161010.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20161010.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20161010.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20161010.sql
diff --git a/persist/src/db/10.0.3/fix_db_20161012.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20161012.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20161012.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20161012.sql
diff --git a/persist/src/db/10.0.3/fix_db_20161026.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20161026.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20161026.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20161026.sql
diff --git a/persist/src/db/10.0.3/fix_db_20161027.sql b/persist/src/main/resources/db/migration/10.0.3/fix_db_20161027.sql
similarity index 100%
rename from persist/src/db/10.0.3/fix_db_20161027.sql
rename to persist/src/main/resources/db/migration/10.0.3/fix_db_20161027.sql
diff --git a/persist/src/db/10.0.4/fix_db_20161215.sql b/persist/src/main/resources/db/migration/10.0.4/fix_db_20161215.sql
similarity index 100%
rename from persist/src/db/10.0.4/fix_db_20161215.sql
rename to persist/src/main/resources/db/migration/10.0.4/fix_db_20161215.sql
diff --git a/persist/src/db/10.0.4/fix_db_20161228.sql b/persist/src/main/resources/db/migration/10.0.4/fix_db_20161228.sql
similarity index 100%
rename from persist/src/db/10.0.4/fix_db_20161228.sql
rename to persist/src/main/resources/db/migration/10.0.4/fix_db_20161228.sql
diff --git a/persist/src/db/10.0.5/fix_db_20170131.sql b/persist/src/main/resources/db/migration/10.0.5/fix_db_20170131.sql
similarity index 100%
rename from persist/src/db/10.0.5/fix_db_20170131.sql
rename to persist/src/main/resources/db/migration/10.0.5/fix_db_20170131.sql
diff --git a/persist/src/db/10/fix_db_20160517.sql b/persist/src/main/resources/db/migration/10/fix_db_20160517.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160517.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160517.sql
diff --git a/persist/src/db/10/fix_db_20160518.sql b/persist/src/main/resources/db/migration/10/fix_db_20160518.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160518.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160518.sql
diff --git a/persist/src/db/10/fix_db_20160519.sql b/persist/src/main/resources/db/migration/10/fix_db_20160519.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160519.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160519.sql
diff --git a/persist/src/db/10/fix_db_20160520.sql b/persist/src/main/resources/db/migration/10/fix_db_20160520.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160520.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160520.sql
diff --git a/persist/src/db/10/fix_db_20160523.sql b/persist/src/main/resources/db/migration/10/fix_db_20160523.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160523.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160523.sql
diff --git a/persist/src/db/10/fix_db_20160524.sql b/persist/src/main/resources/db/migration/10/fix_db_20160524.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160524.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160524.sql
diff --git a/persist/src/db/10/fix_db_20160527.sql b/persist/src/main/resources/db/migration/10/fix_db_20160527.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160527.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160527.sql
diff --git a/persist/src/db/10/fix_db_20160601.sql b/persist/src/main/resources/db/migration/10/fix_db_20160601.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160601.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160601.sql
diff --git a/persist/src/db/10/fix_db_20160606.sql b/persist/src/main/resources/db/migration/10/fix_db_20160606.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160606.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160606.sql
diff --git a/persist/src/db/10/fix_db_20160621.sql b/persist/src/main/resources/db/migration/10/fix_db_20160621.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160621.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160621.sql
diff --git a/persist/src/db/10/fix_db_20160629.sql b/persist/src/main/resources/db/migration/10/fix_db_20160629.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160629.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160629.sql
diff --git a/persist/src/db/10/fix_db_20160727.sql b/persist/src/main/resources/db/migration/10/fix_db_20160727.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160727.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160727.sql
diff --git a/persist/src/db/10/fix_db_20160728.sql b/persist/src/main/resources/db/migration/10/fix_db_20160728.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160728.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160728.sql
diff --git a/persist/src/db/10/fix_db_20160822.sql b/persist/src/main/resources/db/migration/10/fix_db_20160822.sql
similarity index 100%
rename from persist/src/db/10/fix_db_20160822.sql
rename to persist/src/main/resources/db/migration/10/fix_db_20160822.sql
diff --git a/persist/src/db/11.0.0/fix_db_20170616.sql b/persist/src/main/resources/db/migration/11.0.0/fix_db_20170616.sql
similarity index 100%
rename from persist/src/db/11.0.0/fix_db_20170616.sql
rename to persist/src/main/resources/db/migration/11.0.0/fix_db_20170616.sql
diff --git a/persist/src/db/11.0.0/fix_db_20170627.sql b/persist/src/main/resources/db/migration/11.0.0/fix_db_20170627.sql
similarity index 100%
rename from persist/src/db/11.0.0/fix_db_20170627.sql
rename to persist/src/main/resources/db/migration/11.0.0/fix_db_20170627.sql
diff --git a/persist/src/db/11.0.0/fix_db_20170628.sql b/persist/src/main/resources/db/migration/11.0.0/fix_db_20170628.sql
similarity index 100%
rename from persist/src/db/11.0.0/fix_db_20170628.sql
rename to persist/src/main/resources/db/migration/11.0.0/fix_db_20170628.sql
diff --git a/persist/src/db/11.0.0/fix_db_20170629.sql b/persist/src/main/resources/db/migration/11.0.0/fix_db_20170629.sql
similarity index 100%
rename from persist/src/db/11.0.0/fix_db_20170629.sql
rename to persist/src/main/resources/db/migration/11.0.0/fix_db_20170629.sql
diff --git a/persist/src/db/11.0.0/fix_db_20170705.sql b/persist/src/main/resources/db/migration/11.0.0/fix_db_20170705.sql
similarity index 100%
rename from persist/src/db/11.0.0/fix_db_20170705.sql
rename to persist/src/main/resources/db/migration/11.0.0/fix_db_20170705.sql
diff --git a/persist/src/db/11.0.0/fix_db_20170714.sql b/persist/src/main/resources/db/migration/11.0.0/fix_db_20170714.sql
similarity index 100%
rename from persist/src/db/11.0.0/fix_db_20170714.sql
rename to persist/src/main/resources/db/migration/11.0.0/fix_db_20170714.sql
diff --git a/persist/src/db/11.0.0/fix_db_20170725.sql b/persist/src/main/resources/db/migration/11.0.0/fix_db_20170725.sql
similarity index 100%
rename from persist/src/db/11.0.0/fix_db_20170725.sql
rename to persist/src/main/resources/db/migration/11.0.0/fix_db_20170725.sql
diff --git a/persist/src/db/11.0.0/fix_db_20170731.sql b/persist/src/main/resources/db/migration/11.0.0/fix_db_20170731.sql
similarity index 100%
rename from persist/src/db/11.0.0/fix_db_20170731.sql
rename to persist/src/main/resources/db/migration/11.0.0/fix_db_20170731.sql
diff --git a/persist/src/db/11.0.1/fix_db_20170908.sql b/persist/src/main/resources/db/migration/11.0.1/fix_db_20170908.sql
similarity index 100%
rename from persist/src/db/11.0.1/fix_db_20170908.sql
rename to persist/src/main/resources/db/migration/11.0.1/fix_db_20170908.sql
diff --git a/persist/src/db/11.0.10/fix_db_20180416.sql b/persist/src/main/resources/db/migration/11.0.10/fix_db_20180416.sql
similarity index 100%
rename from persist/src/db/11.0.10/fix_db_20180416.sql
rename to persist/src/main/resources/db/migration/11.0.10/fix_db_20180416.sql
diff --git a/persist/src/db/11.0.2/fix_db_20171010.sql b/persist/src/main/resources/db/migration/11.0.2/fix_db_20171010.sql
similarity index 100%
rename from persist/src/db/11.0.2/fix_db_20171010.sql
rename to persist/src/main/resources/db/migration/11.0.2/fix_db_20171010.sql
diff --git a/persist/src/db/11.0.3/fix_db_20171017.sql b/persist/src/main/resources/db/migration/11.0.3/fix_db_20171017.sql
similarity index 100%
rename from persist/src/db/11.0.3/fix_db_20171017.sql
rename to persist/src/main/resources/db/migration/11.0.3/fix_db_20171017.sql
diff --git a/persist/src/db/11.0.4/fix_db_20171109.sql b/persist/src/main/resources/db/migration/11.0.4/fix_db_20171109.sql
similarity index 100%
rename from persist/src/db/11.0.4/fix_db_20171109.sql
rename to persist/src/main/resources/db/migration/11.0.4/fix_db_20171109.sql
diff --git a/persist/src/db/11.0.5/fix_db_20171109.sql b/persist/src/main/resources/db/migration/11.0.5/fix_db_20171109.sql
similarity index 100%
rename from persist/src/db/11.0.5/fix_db_20171109.sql
rename to persist/src/main/resources/db/migration/11.0.5/fix_db_20171109.sql
diff --git a/persist/src/db/11.0.6/fix_db_20171214.sql b/persist/src/main/resources/db/migration/11.0.6/fix_db_20171214.sql
similarity index 100%
rename from persist/src/db/11.0.6/fix_db_20171214.sql
rename to persist/src/main/resources/db/migration/11.0.6/fix_db_20171214.sql
diff --git a/persist/src/db/11.0.7/fix_db_20180118.sql b/persist/src/main/resources/db/migration/11.0.7/fix_db_20180118.sql
similarity index 100%
rename from persist/src/db/11.0.7/fix_db_20180118.sql
rename to persist/src/main/resources/db/migration/11.0.7/fix_db_20180118.sql
diff --git a/persist/src/db/11.0.8/fix_db_20180118.sql b/persist/src/main/resources/db/migration/11.0.8/fix_db_20180118.sql
similarity index 100%
rename from persist/src/db/11.0.8/fix_db_20180118.sql
rename to persist/src/main/resources/db/migration/11.0.8/fix_db_20180118.sql
diff --git a/persist/src/db/11.0.9/fix_db_20180221.sql b/persist/src/main/resources/db/migration/11.0.9/fix_db_20180221.sql
similarity index 100%
rename from persist/src/db/11.0.9/fix_db_20180221.sql
rename to persist/src/main/resources/db/migration/11.0.9/fix_db_20180221.sql
diff --git a/persist/src/db/11.1.0/fix_db_20180509.sql b/persist/src/main/resources/db/migration/11.1.0/fix_db_20180509.sql
similarity index 100%
rename from persist/src/db/11.1.0/fix_db_20180509.sql
rename to persist/src/main/resources/db/migration/11.1.0/fix_db_20180509.sql
diff --git a/persist/src/db/11.1.0/fix_db_20180525.sql b/persist/src/main/resources/db/migration/11.1.0/fix_db_20180525.sql
similarity index 100%
rename from persist/src/db/11.1.0/fix_db_20180525.sql
rename to persist/src/main/resources/db/migration/11.1.0/fix_db_20180525.sql
diff --git a/persist/src/db/11.1.1/fix_db_20171114.sql b/persist/src/main/resources/db/migration/11.1.1/fix_db_20171114.sql
similarity index 100%
rename from persist/src/db/11.1.1/fix_db_20171114.sql
rename to persist/src/main/resources/db/migration/11.1.1/fix_db_20171114.sql
diff --git a/persist/src/db/11.1.1/fix_db_20180626.sql b/persist/src/main/resources/db/migration/11.1.1/fix_db_20180626.sql
similarity index 100%
rename from persist/src/db/11.1.1/fix_db_20180626.sql
rename to persist/src/main/resources/db/migration/11.1.1/fix_db_20180626.sql
diff --git a/persist/src/db/11.1.2/fix_db_20180704.sql b/persist/src/main/resources/db/migration/11.1.2/fix_db_20180704.sql
similarity index 100%
rename from persist/src/db/11.1.2/fix_db_20180704.sql
rename to persist/src/main/resources/db/migration/11.1.2/fix_db_20180704.sql
diff --git a/persist/src/db/11.1.3/fix_db_20180723.sql b/persist/src/main/resources/db/migration/11.1.3/fix_db_20180723.sql
similarity index 100%
rename from persist/src/db/11.1.3/fix_db_20180723.sql
rename to persist/src/main/resources/db/migration/11.1.3/fix_db_20180723.sql
diff --git a/persist/src/db/12.0.0/fix_db_20180716.sql b/persist/src/main/resources/db/migration/12.0.0/fix_db_20180716.sql
similarity index 100%
rename from persist/src/db/12.0.0/fix_db_20180716.sql
rename to persist/src/main/resources/db/migration/12.0.0/fix_db_20180716.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20170713.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170713.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20170713.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170713.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20170720.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170720.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20170720.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170720.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20170808.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170808.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20170808.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170808.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20170809.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170809.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20170809.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170809.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20170814.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170814.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20170814.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170814.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20170822.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170822.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20170822.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170822.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20170829.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170829.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20170829.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20170829.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20171004.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20171004.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20171004.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20171004.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20171115.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20171115.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20171115.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20171115.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20171121.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20171121.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20171121.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20171121.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20180116.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180116.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20180116.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180116.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20180117.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180117.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20180117.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180117.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20180125.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180125.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20180125.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180125.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20180126.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180126.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20180126.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180126.sql
diff --git a/persist/src/db/12.0.0~alpha.0/fix_db_20180206.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180206.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.0/fix_db_20180206.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.0/fix_db_20180206.sql
diff --git a/persist/src/db/12.0.0~alpha.1/fix_db_20180311.sql b/persist/src/main/resources/db/migration/12.0.0~alpha.1/fix_db_20180311.sql
similarity index 100%
rename from persist/src/db/12.0.0~alpha.1/fix_db_20180311.sql
rename to persist/src/main/resources/db/migration/12.0.0~alpha.1/fix_db_20180311.sql
diff --git a/persist/src/db/12.0.0~beta.0/fix_db_20180314.sql b/persist/src/main/resources/db/migration/12.0.0~beta.0/fix_db_20180314.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.0/fix_db_20180314.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.0/fix_db_20180314.sql
diff --git a/persist/src/db/12.0.0~beta.1/fix_db_20180402.sql b/persist/src/main/resources/db/migration/12.0.0~beta.1/fix_db_20180402.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.1/fix_db_20180402.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.1/fix_db_20180402.sql
diff --git a/persist/src/db/12.0.0~beta.1/fix_db_20180405.sql b/persist/src/main/resources/db/migration/12.0.0~beta.1/fix_db_20180405.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.1/fix_db_20180405.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.1/fix_db_20180405.sql
diff --git a/persist/src/db/12.0.0~beta.2/fix_db_20180423.sql b/persist/src/main/resources/db/migration/12.0.0~beta.2/fix_db_20180423.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.2/fix_db_20180423.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.2/fix_db_20180423.sql
diff --git a/persist/src/db/12.0.0~beta.3/fix_db_20180410.sql b/persist/src/main/resources/db/migration/12.0.0~beta.3/fix_db_20180410.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.3/fix_db_20180410.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.3/fix_db_20180410.sql
diff --git a/persist/src/db/12.0.0~beta.3/fix_db_20180411.sql b/persist/src/main/resources/db/migration/12.0.0~beta.3/fix_db_20180411.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.3/fix_db_20180411.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.3/fix_db_20180411.sql
diff --git a/persist/src/db/12.0.0~beta.3/fix_db_20180427.sql b/persist/src/main/resources/db/migration/12.0.0~beta.3/fix_db_20180427.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.3/fix_db_20180427.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.3/fix_db_20180427.sql
diff --git a/persist/src/db/12.0.0~beta.3/fix_db_20180530.sql b/persist/src/main/resources/db/migration/12.0.0~beta.3/fix_db_20180530.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.3/fix_db_20180530.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.3/fix_db_20180530.sql
diff --git a/persist/src/db/12.0.0~beta.4/fix_db_20180607.sql b/persist/src/main/resources/db/migration/12.0.0~beta.4/fix_db_20180607.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.4/fix_db_20180607.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.4/fix_db_20180607.sql
diff --git a/persist/src/db/12.0.0~beta.5/fix_db_20180608.sql b/persist/src/main/resources/db/migration/12.0.0~beta.5/fix_db_20180608.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.5/fix_db_20180608.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.5/fix_db_20180608.sql
diff --git a/persist/src/db/12.0.0~beta.6/fix_db_20180628.sql b/persist/src/main/resources/db/migration/12.0.0~beta.6/fix_db_20180628.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.6/fix_db_20180628.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.6/fix_db_20180628.sql
diff --git a/persist/src/db/12.0.0~beta.7/fix_db_20180705.sql b/persist/src/main/resources/db/migration/12.0.0~beta.7/fix_db_20180705.sql
similarity index 100%
rename from persist/src/db/12.0.0~beta.7/fix_db_20180705.sql
rename to persist/src/main/resources/db/migration/12.0.0~beta.7/fix_db_20180705.sql
diff --git a/persist/src/db/12.0.1/fix_db_20180723.sql b/persist/src/main/resources/db/migration/12.0.1/fix_db_20180723.sql
similarity index 100%
rename from persist/src/db/12.0.1/fix_db_20180723.sql
rename to persist/src/main/resources/db/migration/12.0.1/fix_db_20180723.sql
diff --git a/persist/src/db/12.1.0~alpha.0/fix_db_20180705.sql b/persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180705__coordinates_for_antisense_rna.sql
similarity index 100%
rename from persist/src/db/12.1.0~alpha.0/fix_db_20180705.sql
rename to persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180705__coordinates_for_antisense_rna.sql
diff --git a/persist/src/db/12.1.0~alpha.0/fix_db_20180709.sql b/persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180709__coordinates_for_modifications.sql
similarity index 100%
rename from persist/src/db/12.1.0~alpha.0/fix_db_20180709.sql
rename to persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180709__coordinates_for_modifications.sql
diff --git a/persist/src/db/12.1.0~alpha.0/fix_db_20180710.sql b/persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180710__modification_residue_state.sql
similarity index 100%
rename from persist/src/db/12.1.0~alpha.0/fix_db_20180710.sql
rename to persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180710__modification_residue_state.sql
diff --git a/persist/src/db/12.1.0~alpha.0/fix_db_20180711.sql b/persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180711__modification_residue_width.sql
similarity index 90%
rename from persist/src/db/12.1.0~alpha.0/fix_db_20180711.sql
rename to persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180711__modification_residue_width.sql
index f6867729b929fa57ebb957f66fe64bd21f3b7cc7..a2e82f29a9cce8856bdc04637036a853c98aa826 100644
--- a/persist/src/db/12.1.0~alpha.0/fix_db_20180711.sql
+++ b/persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180711__modification_residue_width.sql
@@ -10,7 +10,7 @@ update modification_residue_table set modification_type='RESIDUE' from element_t
 
 -- move antisense rna regions into modification table
 alter table modification_residue_table add column width numeric(6,2);
-insert into modification_residue_table (idmodificationresidue, name, idspeciesdb, position, state, modification_type, width) select idantisensernaregion, name, idspeciesdb, position, null, type, width from antisense_rna_region_table;
+insert into modification_residue_table (idmodificationresidue, name, idspeciesdb, position, state, modification_type, width) select idantisensernaregion, name, idspeciesdb, position, null, type, width from antisense_rna_region_table where antisense_rna_region_table is not null;
 drop table antisense_rna_region_table;
 
 -- move rna regions into modification table
@@ -19,3 +19,6 @@ update modification_residue_table set modification_type='MODIFICATION_SITE' wher
 update modification_residue_table set modification_type='PROTEIN_BINDING_DOMAIN' where modification_type='proteinBindingDomain';
 update modification_residue_table set modification_type='CODING_REGION' where modification_type='CodingRegion';
 drop table rna_region_table;
+
+--  modification can be active
+alter table modification_residue_table add column active boolean;
\ No newline at end of file
diff --git a/persist/src/db/12.1.0~alpha.0/fix_db_20180712.sql b/persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180712__modification_residue_height_and_direction.sql
similarity index 100%
rename from persist/src/db/12.1.0~alpha.0/fix_db_20180712.sql
rename to persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180712__modification_residue_height_and_direction.sql
diff --git a/persist/src/db/12.1.0~alpha.0/fix_db_20180718.sql b/persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180718__user_ldap_connection.sql
similarity index 100%
rename from persist/src/db/12.1.0~alpha.0/fix_db_20180718.sql
rename to persist/src/main/resources/db/migration/12.1.0~alpha.0/V12.1.0_20180718__user_ldap_connection.sql
diff --git a/persist/src/db/7/fix_db_20140319.sql b/persist/src/main/resources/db/migration/7/fix_db_20140319.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140319.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140319.sql
diff --git a/persist/src/db/7/fix_db_20140430.sql b/persist/src/main/resources/db/migration/7/fix_db_20140430.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140430.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140430.sql
diff --git a/persist/src/db/7/fix_db_20140516.sql b/persist/src/main/resources/db/migration/7/fix_db_20140516.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140516.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140516.sql
diff --git a/persist/src/db/7/fix_db_20140602.sql b/persist/src/main/resources/db/migration/7/fix_db_20140602.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140602.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140602.sql
diff --git a/persist/src/db/7/fix_db_20140603.sql b/persist/src/main/resources/db/migration/7/fix_db_20140603.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140603.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140603.sql
diff --git a/persist/src/db/7/fix_db_20140605.sql b/persist/src/main/resources/db/migration/7/fix_db_20140605.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140605.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140605.sql
diff --git a/persist/src/db/7/fix_db_20140606.sql b/persist/src/main/resources/db/migration/7/fix_db_20140606.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140606.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140606.sql
diff --git a/persist/src/db/7/fix_db_20140612.sql b/persist/src/main/resources/db/migration/7/fix_db_20140612.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140612.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140612.sql
diff --git a/persist/src/db/7/fix_db_20140616.sql b/persist/src/main/resources/db/migration/7/fix_db_20140616.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140616.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140616.sql
diff --git a/persist/src/db/7/fix_db_20140702.sql b/persist/src/main/resources/db/migration/7/fix_db_20140702.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140702.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140702.sql
diff --git a/persist/src/db/7/fix_db_20140718.sql b/persist/src/main/resources/db/migration/7/fix_db_20140718.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140718.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140718.sql
diff --git a/persist/src/db/7/fix_db_20140904.sql b/persist/src/main/resources/db/migration/7/fix_db_20140904.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140904.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140904.sql
diff --git a/persist/src/db/7/fix_db_20140909.sql b/persist/src/main/resources/db/migration/7/fix_db_20140909.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20140909.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20140909.sql
diff --git a/persist/src/db/7/fix_db_20141007.sql b/persist/src/main/resources/db/migration/7/fix_db_20141007.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141007.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141007.sql
diff --git a/persist/src/db/7/fix_db_20141009.sql b/persist/src/main/resources/db/migration/7/fix_db_20141009.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141009.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141009.sql
diff --git a/persist/src/db/7/fix_db_20141013.sql b/persist/src/main/resources/db/migration/7/fix_db_20141013.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141013.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141013.sql
diff --git a/persist/src/db/7/fix_db_20141015.sql b/persist/src/main/resources/db/migration/7/fix_db_20141015.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141015.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141015.sql
diff --git a/persist/src/db/7/fix_db_20141016.sql b/persist/src/main/resources/db/migration/7/fix_db_20141016.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141016.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141016.sql
diff --git a/persist/src/db/7/fix_db_20141024.sql b/persist/src/main/resources/db/migration/7/fix_db_20141024.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141024.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141024.sql
diff --git a/persist/src/db/7/fix_db_20141027.sql b/persist/src/main/resources/db/migration/7/fix_db_20141027.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141027.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141027.sql
diff --git a/persist/src/db/7/fix_db_20141106.sql b/persist/src/main/resources/db/migration/7/fix_db_20141106.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141106.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141106.sql
diff --git a/persist/src/db/7/fix_db_20141107.sql b/persist/src/main/resources/db/migration/7/fix_db_20141107.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141107.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141107.sql
diff --git a/persist/src/db/7/fix_db_20141112.sql b/persist/src/main/resources/db/migration/7/fix_db_20141112.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141112.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141112.sql
diff --git a/persist/src/db/7/fix_db_20141113.sql b/persist/src/main/resources/db/migration/7/fix_db_20141113.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141113.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141113.sql
diff --git a/persist/src/db/7/fix_db_20141114.sql b/persist/src/main/resources/db/migration/7/fix_db_20141114.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141114.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141114.sql
diff --git a/persist/src/db/7/fix_db_20141117.sql b/persist/src/main/resources/db/migration/7/fix_db_20141117.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141117.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141117.sql
diff --git a/persist/src/db/7/fix_db_20141118.sql b/persist/src/main/resources/db/migration/7/fix_db_20141118.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141118.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141118.sql
diff --git a/persist/src/db/7/fix_db_20141119.sql b/persist/src/main/resources/db/migration/7/fix_db_20141119.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141119.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141119.sql
diff --git a/persist/src/db/7/fix_db_20141124.sql b/persist/src/main/resources/db/migration/7/fix_db_20141124.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141124.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141124.sql
diff --git a/persist/src/db/7/fix_db_20141125.sql b/persist/src/main/resources/db/migration/7/fix_db_20141125.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141125.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141125.sql
diff --git a/persist/src/db/7/fix_db_20141126.sql b/persist/src/main/resources/db/migration/7/fix_db_20141126.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141126.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141126.sql
diff --git a/persist/src/db/7/fix_db_20141127.sql b/persist/src/main/resources/db/migration/7/fix_db_20141127.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141127.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141127.sql
diff --git a/persist/src/db/7/fix_db_20141202.sql b/persist/src/main/resources/db/migration/7/fix_db_20141202.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141202.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141202.sql
diff --git a/persist/src/db/7/fix_db_20141212.sql b/persist/src/main/resources/db/migration/7/fix_db_20141212.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141212.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141212.sql
diff --git a/persist/src/db/7/fix_db_20141218.sql b/persist/src/main/resources/db/migration/7/fix_db_20141218.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20141218.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20141218.sql
diff --git a/persist/src/db/7/fix_db_20150107.sql b/persist/src/main/resources/db/migration/7/fix_db_20150107.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150107.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150107.sql
diff --git a/persist/src/db/7/fix_db_20150108.sql b/persist/src/main/resources/db/migration/7/fix_db_20150108.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150108.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150108.sql
diff --git a/persist/src/db/7/fix_db_20150109.sql b/persist/src/main/resources/db/migration/7/fix_db_20150109.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150109.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150109.sql
diff --git a/persist/src/db/7/fix_db_20150120.sql b/persist/src/main/resources/db/migration/7/fix_db_20150120.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150120.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150120.sql
diff --git a/persist/src/db/7/fix_db_20150310.sql b/persist/src/main/resources/db/migration/7/fix_db_20150310.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150310.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150310.sql
diff --git a/persist/src/db/7/fix_db_20150316.sql b/persist/src/main/resources/db/migration/7/fix_db_20150316.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150316.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150316.sql
diff --git a/persist/src/db/7/fix_db_20150324.sql b/persist/src/main/resources/db/migration/7/fix_db_20150324.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150324.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150324.sql
diff --git a/persist/src/db/7/fix_db_20150325.sql b/persist/src/main/resources/db/migration/7/fix_db_20150325.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150325.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150325.sql
diff --git a/persist/src/db/7/fix_db_20150331.sql b/persist/src/main/resources/db/migration/7/fix_db_20150331.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150331.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150331.sql
diff --git a/persist/src/db/7/fix_db_20150408.sql b/persist/src/main/resources/db/migration/7/fix_db_20150408.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150408.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150408.sql
diff --git a/persist/src/db/7/fix_db_20150409.sql b/persist/src/main/resources/db/migration/7/fix_db_20150409.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150409.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150409.sql
diff --git a/persist/src/db/7/fix_db_20150413.sql b/persist/src/main/resources/db/migration/7/fix_db_20150413.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150413.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150413.sql
diff --git a/persist/src/db/7/fix_db_20150416.sql b/persist/src/main/resources/db/migration/7/fix_db_20150416.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150416.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150416.sql
diff --git a/persist/src/db/7/fix_db_20150420.sql b/persist/src/main/resources/db/migration/7/fix_db_20150420.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150420.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150420.sql
diff --git a/persist/src/db/7/fix_db_20150423.sql b/persist/src/main/resources/db/migration/7/fix_db_20150423.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150423.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150423.sql
diff --git a/persist/src/db/7/fix_db_20150424.sql b/persist/src/main/resources/db/migration/7/fix_db_20150424.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150424.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150424.sql
diff --git a/persist/src/db/7/fix_db_20150522.sql b/persist/src/main/resources/db/migration/7/fix_db_20150522.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150522.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150522.sql
diff --git a/persist/src/db/7/fix_db_20150528.sql b/persist/src/main/resources/db/migration/7/fix_db_20150528.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150528.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150528.sql
diff --git a/persist/src/db/7/fix_db_20150609.sql b/persist/src/main/resources/db/migration/7/fix_db_20150609.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150609.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150609.sql
diff --git a/persist/src/db/7/fix_db_20150629.sql b/persist/src/main/resources/db/migration/7/fix_db_20150629.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150629.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150629.sql
diff --git a/persist/src/db/7/fix_db_20150707.sql b/persist/src/main/resources/db/migration/7/fix_db_20150707.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150707.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150707.sql
diff --git a/persist/src/db/7/fix_db_20150708.sql b/persist/src/main/resources/db/migration/7/fix_db_20150708.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150708.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150708.sql
diff --git a/persist/src/db/7/fix_db_20150717.sql b/persist/src/main/resources/db/migration/7/fix_db_20150717.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150717.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150717.sql
diff --git a/persist/src/db/7/fix_db_20150720.sql b/persist/src/main/resources/db/migration/7/fix_db_20150720.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150720.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150720.sql
diff --git a/persist/src/db/7/fix_db_20150721.sql b/persist/src/main/resources/db/migration/7/fix_db_20150721.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150721.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150721.sql
diff --git a/persist/src/db/7/fix_db_20150722.sql b/persist/src/main/resources/db/migration/7/fix_db_20150722.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150722.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150722.sql
diff --git a/persist/src/db/7/fix_db_20150818.sql b/persist/src/main/resources/db/migration/7/fix_db_20150818.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150818.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150818.sql
diff --git a/persist/src/db/7/fix_db_20150820.sql b/persist/src/main/resources/db/migration/7/fix_db_20150820.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150820.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150820.sql
diff --git a/persist/src/db/7/fix_db_20150821.sql b/persist/src/main/resources/db/migration/7/fix_db_20150821.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150821.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150821.sql
diff --git a/persist/src/db/7/fix_db_20150824.sql b/persist/src/main/resources/db/migration/7/fix_db_20150824.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150824.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150824.sql
diff --git a/persist/src/db/7/fix_db_20150826.sql b/persist/src/main/resources/db/migration/7/fix_db_20150826.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150826.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150826.sql
diff --git a/persist/src/db/7/fix_db_20150828.sql b/persist/src/main/resources/db/migration/7/fix_db_20150828.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150828.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150828.sql
diff --git a/persist/src/db/7/fix_db_20150910.sql b/persist/src/main/resources/db/migration/7/fix_db_20150910.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150910.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150910.sql
diff --git a/persist/src/db/7/fix_db_20150915.sql b/persist/src/main/resources/db/migration/7/fix_db_20150915.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150915.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150915.sql
diff --git a/persist/src/db/7/fix_db_20150917.sql b/persist/src/main/resources/db/migration/7/fix_db_20150917.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150917.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150917.sql
diff --git a/persist/src/db/7/fix_db_20150918.sql b/persist/src/main/resources/db/migration/7/fix_db_20150918.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20150918.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20150918.sql
diff --git a/persist/src/db/7/fix_db_20151001.sql b/persist/src/main/resources/db/migration/7/fix_db_20151001.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20151001.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20151001.sql
diff --git a/persist/src/db/7/fix_db_20151027.sql b/persist/src/main/resources/db/migration/7/fix_db_20151027.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20151027.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20151027.sql
diff --git a/persist/src/db/7/fix_db_20151120.sql b/persist/src/main/resources/db/migration/7/fix_db_20151120.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20151120.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20151120.sql
diff --git a/persist/src/db/7/fix_db_20151203.sql b/persist/src/main/resources/db/migration/7/fix_db_20151203.sql
similarity index 100%
rename from persist/src/db/7/fix_db_20151203.sql
rename to persist/src/main/resources/db/migration/7/fix_db_20151203.sql
diff --git a/persist/src/db/8/fix_db_20151214.sql b/persist/src/main/resources/db/migration/8/fix_db_20151214.sql
similarity index 100%
rename from persist/src/db/8/fix_db_20151214.sql
rename to persist/src/main/resources/db/migration/8/fix_db_20151214.sql
diff --git a/persist/src/db/8/fix_db_20160128.sql b/persist/src/main/resources/db/migration/8/fix_db_20160128.sql
similarity index 100%
rename from persist/src/db/8/fix_db_20160128.sql
rename to persist/src/main/resources/db/migration/8/fix_db_20160128.sql
diff --git a/persist/src/db/8/fix_db_20160311.sql b/persist/src/main/resources/db/migration/8/fix_db_20160311.sql
similarity index 100%
rename from persist/src/db/8/fix_db_20160311.sql
rename to persist/src/main/resources/db/migration/8/fix_db_20160311.sql
diff --git a/persist/src/db/8/fix_db_20160324.sql b/persist/src/main/resources/db/migration/8/fix_db_20160324.sql
similarity index 100%
rename from persist/src/db/8/fix_db_20160324.sql
rename to persist/src/main/resources/db/migration/8/fix_db_20160324.sql
diff --git a/persist/src/db/8/fix_db_20160428.sql b/persist/src/main/resources/db/migration/8/fix_db_20160428.sql
similarity index 100%
rename from persist/src/db/8/fix_db_20160428.sql
rename to persist/src/main/resources/db/migration/8/fix_db_20160428.sql
diff --git a/persist/src/db/8/fix_db_20160517.sql b/persist/src/main/resources/db/migration/8/fix_db_20160517.sql
similarity index 100%
rename from persist/src/db/8/fix_db_20160517.sql
rename to persist/src/main/resources/db/migration/8/fix_db_20160517.sql
diff --git a/persist/src/db/9/fix_db_20160629.sql b/persist/src/main/resources/db/migration/9/fix_db_20160629.sql
similarity index 100%
rename from persist/src/db/9/fix_db_20160629.sql
rename to persist/src/main/resources/db/migration/9/fix_db_20160629.sql
diff --git a/persist/src/db/base.sql b/persist/src/main/resources/db/migration/base.sql
similarity index 100%
rename from persist/src/db/base.sql
rename to persist/src/main/resources/db/migration/base.sql
diff --git a/persist/src/test/java/lcsb/mapviewer/persist/DbUtilsTest.java b/persist/src/test/java/lcsb/mapviewer/persist/DbUtilsTest.java
index 112faffdeba5596c3a77164b6963fb9d74cf7acf..3cdd131d74a355c9837e11a634849b0a1b653e01 100644
--- a/persist/src/test/java/lcsb/mapviewer/persist/DbUtilsTest.java
+++ b/persist/src/test/java/lcsb/mapviewer/persist/DbUtilsTest.java
@@ -5,63 +5,65 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import org.apache.log4j.Logger;
 import org.junit.Test;
 
 import lcsb.mapviewer.common.exception.InvalidStateException;
 
 public class DbUtilsTest extends PersistTestFunctions {
+  Logger logger = Logger.getLogger(DbUtilsTest.class);
 
-	@Test
-	public void testSchema() throws Exception {
-		try {
-			dbUtils.executeSqlQuery("update user_table set idDb = 1 where idDb =1");
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
-	
-	@Test
-	public void testCreateSession() throws Exception {
-		try {
-			assertFalse(dbUtils.isCustomSessionForCurrentThread());
-			dbUtils.createSessionForCurrentThread();
-			assertTrue(dbUtils.isCustomSessionForCurrentThread());
-			assertEquals(1, dbUtils.getSessionCounter());
-			dbUtils.closeSessionForCurrentThread();
-			assertFalse(dbUtils.isCustomSessionForCurrentThread());
-			assertEquals(0, dbUtils.getSessionCounter());
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
-	@Test
-	public void testCreateInvalidSession() throws Exception {
-		try {
-			dbUtils.createSessionForCurrentThread();
-			dbUtils.createSessionForCurrentThread();
-			fail("Exception expected");
-		} catch (InvalidStateException e) {
-			dbUtils.closeSessionForCurrentThread();
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
-	
-	@Test
-	public void testAutoFlush() {
-		try {
-			boolean autoflush = dbUtils.isAutoFlush();
-			dbUtils.setAutoFlush(false);
-			assertFalse(dbUtils.isAutoFlush());
-			dbUtils.setAutoFlush(autoflush);
-		} catch (Exception e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
+  @Test
+  public void testSchema() throws Exception {
+    try {
+      dbUtils.executeSqlQuery("update user_table set idDb = 1 where idDb =1");
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
+
+  @Test
+  public void testCreateSession() throws Exception {
+    try {
+      assertFalse(dbUtils.isCustomSessionForCurrentThread());
+      dbUtils.createSessionForCurrentThread();
+      assertTrue(dbUtils.isCustomSessionForCurrentThread());
+      assertEquals(1, dbUtils.getSessionCounter());
+      dbUtils.closeSessionForCurrentThread();
+      assertFalse(dbUtils.isCustomSessionForCurrentThread());
+      assertEquals(0, dbUtils.getSessionCounter());
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
+
+  @Test
+  public void testCreateInvalidSession() throws Exception {
+    try {
+      dbUtils.createSessionForCurrentThread();
+      dbUtils.createSessionForCurrentThread();
+      fail("Exception expected");
+    } catch (InvalidStateException e) {
+      dbUtils.closeSessionForCurrentThread();
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
+
+  @Test
+  public void testAutoFlush() {
+    try {
+      boolean autoflush = dbUtils.isAutoFlush();
+      dbUtils.setAutoFlush(false);
+      assertFalse(dbUtils.isAutoFlush());
+      dbUtils.setAutoFlush(autoflush);
+    } catch (Exception e) {
+      e.printStackTrace();
+      throw e;
+    }
+  }
 
-	
 }
diff --git a/pom.xml b/pom.xml
index d5d32a9cadb483204b206b47cce6112ac4f49447..5701dfb1f80e96c7f95be22c8e593d6269c70dbc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,6 +81,7 @@
 		<osgi.version>1.0.0</osgi.version>
 		
 		<cglib.version>2.2.2</cglib.version>
+		<flyway.version>5.1.4</flyway.version>
 		
 
     <unboundid-ldapsdk.version>4.0.6</unboundid-ldapsdk.version>
diff --git a/web/src/main/java/lcsb/mapviewer/bean/utils/StartupBean.java b/web/src/main/java/lcsb/mapviewer/bean/utils/StartupBean.java
index 9fafff8679eaa72c8d1cfa255e4f5d1230ccf37e..a2502c47c5397055bb602dfd502367d91ba42131 100644
--- a/web/src/main/java/lcsb/mapviewer/bean/utils/StartupBean.java
+++ b/web/src/main/java/lcsb/mapviewer/bean/utils/StartupBean.java
@@ -17,6 +17,7 @@ import lcsb.mapviewer.model.Project;
 import lcsb.mapviewer.model.ProjectStatus;
 import lcsb.mapviewer.model.map.layout.ReferenceGenome;
 import lcsb.mapviewer.model.user.ConfigurationElementType;
+import lcsb.mapviewer.persist.DbUtils;
 import lcsb.mapviewer.services.interfaces.IConfigurationService;
 import lcsb.mapviewer.services.interfaces.IProjectService;
 import lcsb.mapviewer.services.interfaces.IReferenceGenomeService;
@@ -60,6 +61,9 @@ public class StartupBean {
   @ManagedProperty(value = "#{ReferenceGenomeService}")
   private transient IReferenceGenomeService referenceGenomeService;
 
+  @ManagedProperty(value = "#{DbUtils}")
+  private transient DbUtils dbUtils;
+
   /**
    * Method that process initial script of application.
    */
@@ -178,4 +182,11 @@ public class StartupBean {
     this.projectService = projectService;
   }
 
+  public DbUtils getDbUtils() {
+    return dbUtils;
+  }
+
+  public void setDbUtils(DbUtils dbUtils) {
+    this.dbUtils = dbUtils;
+  }
 }
diff --git a/web/src/main/java/lcsb/mapviewer/validator/LoginValidator.java b/web/src/main/java/lcsb/mapviewer/validator/LoginValidator.java
deleted file mode 100644
index a082908bf44b281d10c26696b4dd32f8613a1016..0000000000000000000000000000000000000000
--- a/web/src/main/java/lcsb/mapviewer/validator/LoginValidator.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package lcsb.mapviewer.validator;
-
-import java.util.regex.Pattern;
-
-import javax.faces.application.FacesMessage;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.validator.FacesValidator;
-import javax.faces.validator.Validator;
-import javax.faces.validator.ValidatorException;
-
-/**
- * Validator of login field.
- * 
- * @author Piotr Gawron
- *
- */
-@FacesValidator("loginValidator")
-public class LoginValidator implements Validator {
-
-	/**
-	 * Regex pattern used for login validation.
-	 */
-	private static final Pattern LOGIN_PATTERN = Pattern.compile("[a-zA-Z0-9_\\.\\-]+");
-
-	@Override
-	public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
-		if (value == null) {
-			return; // Let required="true" handle.
-		}
-		if (!LOGIN_PATTERN.matcher((String) value).matches()) {
-			String summary = "Incorrect login.";
-			String detail = "Only alphanumeric characters and \"-\", \"_\", \".\" special characters are allowed";
-			throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, summary, detail));
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/web/src/main/java/lcsb/mapviewer/validator/package-info.java b/web/src/main/java/lcsb/mapviewer/validator/package-info.java
deleted file mode 100644
index 9a25482ee1e1e843c2966da8084edf5c68e0d7e2..0000000000000000000000000000000000000000
--- a/web/src/main/java/lcsb/mapviewer/validator/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Provides validator for JSF forms.
- */
-package lcsb.mapviewer.validator;
diff --git a/web/src/test/java/lcsb/mapviewer/AllWebTests.java b/web/src/test/java/lcsb/mapviewer/AllWebTests.java
deleted file mode 100644
index 22334086463ca6538d7fb73e60a5d2f26b868e5b..0000000000000000000000000000000000000000
--- a/web/src/test/java/lcsb/mapviewer/AllWebTests.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package lcsb.mapviewer;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-import lcsb.mapviewer.validator.AllValidatorTests;
-
-@RunWith(Suite.class)
-@SuiteClasses({ AllValidatorTests.class,//
-})
-public class AllWebTests {
-
-}
diff --git a/web/src/test/java/lcsb/mapviewer/validator/AllValidatorTests.java b/web/src/test/java/lcsb/mapviewer/validator/AllValidatorTests.java
deleted file mode 100644
index dd6e48a1eb63b7d82bfea487a32eea40b9d6162f..0000000000000000000000000000000000000000
--- a/web/src/test/java/lcsb/mapviewer/validator/AllValidatorTests.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package lcsb.mapviewer.validator;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-@RunWith(Suite.class)
-@SuiteClasses({ LoginValidatorTest.class })
-public class AllValidatorTests {
-
-}
diff --git a/web/src/test/java/lcsb/mapviewer/validator/LoginValidatorTest.java b/web/src/test/java/lcsb/mapviewer/validator/LoginValidatorTest.java
deleted file mode 100644
index a216753326f54d1d72112c0d1691ca7cedcc03ca..0000000000000000000000000000000000000000
--- a/web/src/test/java/lcsb/mapviewer/validator/LoginValidatorTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package lcsb.mapviewer.validator;
-
-import static org.junit.Assert.fail;
-
-import javax.faces.validator.ValidatorException;
-
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.Test;
-
-public class LoginValidatorTest {
-	LoginValidator validator = new LoginValidator();
-
-	@AfterClass
-	public static void tearDownAfterClass() throws Exception {
-	}
-
-	@Before
-	public void setUp() throws Exception {
-	}
-
-	@After
-	public void tearDown() throws Exception {
-	}
-
-	@Test
-	public void testCorrect() {
-		validator.validate(null, null, "piotr.gawron");
-	}
-
-	@Test
-	public void testIncorrect() {
-		try {
-			validator.validate(null, null, "piotr gawron");
-			fail("Exception expected");
-		} catch (ValidatorException e) {
-
-		}
-	}
-
-}
diff --git a/web/src/test/resources/log4j.properties b/web/src/test/resources/log4j.properties
index 5594c7999fbec1b09075e997f3710d6f0fdf888a..c36f0e8f0f2d1bc6becf9ac41a23e8ecd76ef358 100644
--- a/web/src/test/resources/log4j.properties
+++ b/web/src/test/resources/log4j.properties
@@ -1,5 +1,5 @@
 #Set root logger 's level and its appender to an appender called CONSOLE which is defined below.
-log4j.rootLogger=info, CONSOLE, R
+log4j.rootLogger=info, CONSOLE
 
 #Set the behavior of the CONSOLE appender 
 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender