Author: fdesbois Date: 2010-06-10 13:33:13 +0000 (Thu, 10 Jun 2010) New Revision: 504 Log: Evo #2325 : Add migration queries for user roles. (not tested yet with production database) Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-06-09 14:42:49 UTC (rev 503) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-06-10 13:33:13 UTC (rev 504) @@ -105,4 +105,21 @@ "topiaVersion = S.topiaVersion + 1;"); } + @Override + protected void updateWaoUserRoleColumns_1_3(List<String> queries) { + // Update COORDINATOR + queries.add("UPDATE WaoUser SET role = 4 WHERE role = 2;"); + // Update OBSERVER + queries.add("UPDATE WaoUser SET role = 2 WHERE role = 1;"); + // Update ADMIN + queries.add("UPDATE WaoUser SET role = 1 WHERE role = 0;"); + + // Update ReadOnly with role value if set to TRUE + queries.add("ALTER TABLE WaoUser ADD roleReadOnly INTEGER;"); + queries.add("UPDATE WaoUser SET roleReadOnly = role WHERE readOnly = TRUE;"); + + // Clean readOnly old field + queries.add("ALTER TABLE WaoUser DROP COLUMN readOnly;"); + } + } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-06-09 14:42:49 UTC (rev 503) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-06-10 13:33:13 UTC (rev 504) @@ -59,6 +59,8 @@ protected abstract void createSampleMonthEstimatedTidesColumn_1_2b( List<String> queries); + protected abstract void updateWaoUserRoleColumns_1_3(List<String> queries); + @Override public boolean askUser(Version dbVersion, Version applicationVersion, @@ -110,4 +112,19 @@ String[] strings = queries.toArray(new String[queries.size()]); executeSQL(tx, showSql, showProgression, strings); } + + public void migrateTo_1_3(TopiaContextImplementor tx, + boolean showSql, + boolean showProgression) throws TopiaException { + if (log.isInfoEnabled()) { + log.info("Migrate to version 1.3"); + } + + List<String> queries = new ArrayList <String>(); + + updateWaoUserRoleColumns_1_3(queries); + + String[] strings = queries.toArray(new String[queries.size()]); + executeSQL(tx, showSql, showProgression, strings); + } }