Changeset 3709
- Timestamp:
- Sep 6, 2007, 9:28:40 AM (16 years ago)
- Location:
- branches/2.4-stable
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.4-stable/config/dist/mysql-migration-queries.sql
r3675 r3709 1126 1126 1127 1127 /* selectMinimumReporters */ 1128 SELECT `id`, `reporterId` 1128 SELECT `id`, `reporterId`, `geneName`, `geneSymbol` 1129 1129 FROM `Reporter` 1130 1130 ORDER BY `id` -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/CommonItemTransfer.java
r3679 r3709 62 62 private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger("net.sf.basedb.clients.migrate.CommonItemTransfer"); 63 63 64 CommonItemTransfer() 65 {} 64 66 65 67 CommonItemTransfer(UserTransfer userT, GroupTransfer groupT) -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/GroupTransfer.java
r3683 r3709 68 68 private QuotaTransfer quotaT = null; 69 69 70 GroupTransfer() 71 {} 72 70 73 /** 71 74 @param userT Depends on a finnished UserTransfer. -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/Migrater.java
r3679 r3709 31 31 import net.sf.basedb.core.SessionControl; 32 32 import java.io.BufferedReader; 33 import java.io.FileInputStream; 34 import java.io.FileOutputStream; 33 35 import java.io.IOException; 34 36 import java.io.InputStream; 35 37 import java.io.InputStreamReader; 38 import java.io.ObjectInputStream; 39 import java.io.ObjectOutputStream; 36 40 import java.sql.Connection; 37 41 import java.sql.DriverManager; … … 99 103 try 100 104 { 101 ReporterTransfer reporterT = new ReporterTransfer( );105 ReporterTransfer reporterT = new ReporterTransfer(false); 102 106 startTransfer(reporterT, "Reporter"); 103 107 RoleTransfer roleT = new RoleTransfer(); … … 108 112 startTransfer(userT, "User"); 109 113 GroupTransfer groupT = new GroupTransfer(userT, quotaT); 110 startTransfer(groupT, "Group"); 114 startTransfer(groupT, "Group"); 111 115 PluginTransfer pluginT = new PluginTransfer(userT, groupT); 112 116 startTransfer(pluginT, "Plugins"); … … 189 193 groupT, scanT, arrayTypeT, uploadFT, softwareT, sampleT); 190 194 startTransfer(rawBioAssayT, "RawBioAssay"); 195 createResumePoint(userT, groupT, rawBioAssayT); 191 196 RawBioAssayDataTransfer rawBioAssayDataT = new RawBioAssayDataTransfer( 192 userT, groupT, rawBioAssayT, arrayTypeT, reporterT);197 rawBioAssayT, reporterT); 193 198 startTransfer(rawBioAssayDataT, "RawBioAssayData"); 199 removeResumePoint(); 194 200 ExperimentTransfer experimentT = new ExperimentTransfer(userT, 195 201 groupT, rawBioAssayT); … … 203 209 System.exit(1); 204 210 } 205 catch ( Exceptione)211 catch (Throwable e) 206 212 { 207 213 log.error("The migration FAILED", e); … … 210 216 } 211 217 218 public void resume() 219 { 220 try 221 { 222 // Reporters must be mapped using external ID from BASE 1 and BASE 2 223 ReporterTransfer reporterT = new ReporterTransfer(true); 224 startTransfer(reporterT, "Reporter"); 225 226 // Pre-existing quota is loaded from BASE 2 227 QuotaTransfer quotaT = new QuotaTransfer(); 228 startTransfer(quotaT, "Quota"); 229 230 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("migration.tmp")); 231 // Map of user ID:s are read from file 232 UserTransfer userT = new UserTransfer(quotaT); 233 userT.setup(FROM, TO, sessionControl, BASE2, migrateProperties); 234 log.info("Loading users from 'migration.tmp' file..."); 235 userT.readRestorePointData(ois); 236 log.info("Found " + userT.getIdMap().size() + " users"); 237 if (log.isDebugEnabled()) log.debug("User ID Map (Base 1 --> Base2): " + userT.getIdMap()); 238 239 // Map of group ID:s are read from file 240 GroupTransfer groupT = new GroupTransfer(); 241 log.info("Loading groups from 'migration.tmp' file..."); 242 groupT.readRestorePointData(ois); 243 log.info("Found " + groupT.getIdMap().size() + " groups"); 244 if (log.isDebugEnabled()) log.debug("Group ID Map (Base 1 --> Base2): " + groupT.getIdMap()); 245 246 // Map of raw bioassay ID:s are read from file 247 RawBioAssayTransfer rawBioAssayT = new RawBioAssayTransfer(); 248 log.info("Loading raw bioassays from 'migration.tmp' file..."); 249 rawBioAssayT.readRestorePointData(ois); 250 log.info("Found " + rawBioAssayT.getIdMap().size() + " raw bioassays"); 251 if (log.isDebugEnabled()) log.debug("Raw bioassay ID Map (Base 1 --> Base2): " + rawBioAssayT.getIdMap()); 252 ois.close(); 253 254 // RawBioassayTransfer runs normally, but checks if a raw bioassay already has raw data 255 RawBioAssayDataTransfer rawBioAssayDataT = new RawBioAssayDataTransfer(rawBioAssayT, 256 reporterT); 257 startTransfer(rawBioAssayDataT, "RawBioAssayData"); 258 removeResumePoint(); 259 260 // Experiment transfter runs normally 261 ExperimentTransfer experimentT = new ExperimentTransfer(userT, 262 groupT, rawBioAssayT); 263 startTransfer(experimentT, "Experiment"); 264 265 // Runs normally 266 userT.finalizeQuota(); 267 268 print("END MIGRATION"); 269 log.info("Migration ended"); 270 Application.stop(); 271 System.exit(1); 272 273 } 274 catch (Throwable e) 275 { 276 log.error("The migration FAILED", e); 277 stop(); 278 } 279 } 280 281 private void createResumePoint(Transfer...transfers) 282 throws IOException 283 { 284 log.info("Creating resume point"); 285 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("migration.tmp")); 286 for (Transfer t: transfers) 287 { 288 log.info("Store to resume point: " + t); 289 t.writeRestorePointData(oos); 290 } 291 oos.close(); 292 } 293 294 private void removeResumePoint() 295 { 296 log.info("Removing resume point"); 297 java.io.File resumePoint = new java.io.File("migration.tmp"); 298 resumePoint.delete(); 299 } 300 212 301 private void startTransfer(Transfer transfer, String property) 213 302 { … … 474 563 System.err.println("-----------------------------------------------------------------------"); 475 564 565 java.io.File restorePoint = new java.io.File("migration.tmp"); 566 boolean resumeMigration = false; 567 476 568 if (args == null || args.length == 0 || !"disclaimer_understood".equals(args[0])) 477 569 { … … 479 571 System.exit(0); 480 572 } 573 else if (restorePoint.exists()) 574 { 575 System.err.println("FOUND DATA FROM A PREVIOUSLY INTERRUPTED MIGRATION."); 576 System.err.println("\n Press ENTER to resume the migration\nor\n Ctrl-C to abort\n"); 577 System.err.println("To start a new migration delete the './migration.tmp' file"); 578 System.err.println("before starting the migration program."); 579 waitForEnter(); 580 resumeMigration = true; 581 } 481 582 else 482 583 { … … 485 586 } 486 587 487 System.err.println( "Starting migration...");588 System.err.println(resumeMigration ? "Resuming migration" : "Starting migration..."); 488 589 Application.start(false); 489 590 Migrater migrater = new Migrater(); … … 493 594 migrater.prepareStatementsFromFile(); 494 595 log.info("Migration initialisation DONE"); 495 migrater.run(); 596 if (resumeMigration) 597 { 598 migrater.resume(); 599 } 600 else 601 { 602 migrater.run(); 603 } 496 604 } 497 605 … … 506 614 {} 507 615 } 508 509 616 510 617 } -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/QuotaTransfer.java
r3683 r3709 95 95 quota.setName(formatBytes(totalQuota)); 96 96 dc.saveItem(quota); 97 quotas.put(totalQuota, quota); 97 98 } 98 99 else -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/RawBioAssayDataTransfer.java
r3683 r3709 47 47 48 48 public class RawBioAssayDataTransfer 49 extends CommonItemTransfer49 extends Transfer 50 50 { 51 51 /** … … 77 77 @param groupT A finished {@link GroupTransfer} 78 78 */ 79 RawBioAssayDataTransfer(UserTransfer userT, GroupTransfer groupT, 80 RawBioAssayTransfer rbaT, ArrayTypeTransfer arrayTypeT, 81 ReporterTransfer reporterT) 82 { 83 super(userT, groupT); 79 RawBioAssayDataTransfer(RawBioAssayTransfer rbaT, ReporterTransfer reporterT) 80 { 81 super(); 84 82 log.debug("Checking that necessary transfers have been done before proceeding with RawBioAssayData"); 85 if (rbaT != null && rbaT.isDone() && arrayTypeT != null 86 && arrayTypeT.isDone() && reporterT != null 87 && reporterT.isDone()) 83 if (rbaT != null && rbaT.isDone() && 84 reporterT != null && reporterT.isDone()) 88 85 { 89 86 this.rbaT = rbaT; … … 93 90 { 94 91 if (!rbaT.isDone()) log.debug("Dependency: RawBioAssays haven't been transfered"); 95 if (!arrayTypeT.isDone()) log.debug("Dependency: ArrayTypes haven't been transfered");96 92 if (!reporterT.isDone()) log.debug("Dependency: Reporters haven't been transfered"); 97 93 dependencyFailure(); … … 133 129 log.debug("RawBioAssay '" + rawBioAssayId + "' " + (hasArrayDesign ? "has " : "no ") + "Array Design"); 134 130 } 135 transferRawBioAssayData(rawBioAssay, rawBioAssayId, hasArrayDesign); 131 if (!rawBioAssay.hasData()) 132 { 133 transferRawBioAssayData(rawBioAssay, rawBioAssayId, hasArrayDesign); 134 } 135 else 136 { 137 log.info("Skipping since it already has data"); 138 progress.increase(rawBioAssay.getSpots()); 139 } 136 140 progress.decrease(); // We do not want to count the RawBioAssays 137 141 if (log.isDebugEnabled()) … … 263 267 if (log.isInfoEnabled()) 264 268 { 265 log.info("Transfered " + rowCount + " rows of RawData for raw bioassay " + rawBioAssay.getName());269 log.info("Transfered " + rowCount + " rows of RawData for raw bioassay: " + rawBioAssay.getName()); 266 270 } 267 271 } -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/RawBioAssayTransfer.java
r3683 r3709 63 63 private SampleTransfer sampleT = null; 64 64 65 RawBioAssayTransfer() 66 {} 67 65 68 /** 66 69 Constructs a new RawBioAssayTransfer. -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/ReporterTransfer.java
r3683 r3709 90 90 91 91 /** 92 Flag that indicates if we should run in RESUME mode 93 (ie. NOT create new reporter items, only map ID:s) 94 */ 95 private boolean RESUME = false; 96 97 /** 92 98 Set string and text properties, order must match the select statement 93 99 except for the id and reporterId in the beginning Extended properties are … … 102 108 Reporters are independant from other transfers. 103 109 */ 104 ReporterTransfer() 105 {} 110 ReporterTransfer(boolean resume) 111 { 112 RESUME = resume; 113 } 106 114 107 115 public void start() 108 116 { 109 if (!QUICK_TRANSFER) log.info("Transferring reporters..."); 110 else log.info("Transferring reporters with minimum properties..."); 117 if (RESUME) QUICK_TRANSFER = true; 118 if (RESUME) 119 { 120 log.info("Loading reporters..."); 121 } 122 else if (!QUICK_TRANSFER) 123 { 124 log.info("Transferring reporters..."); 125 } 126 else 127 { 128 log.info("Transferring reporters with minimum properties..."); 129 } 111 130 112 131 int count = getInt("countReporters"); … … 199 218 rowCount++; 200 219 ReporterData item = createDataItem(rs); 201 if (item != null ) batcher.insert(item);220 if (item != null && !RESUME) batcher.insert(item); 202 221 progress.increase(); 203 222 } … … 319 338 } 320 339 rd = Reporter.getNew(externalId); 340 String name = rs.getString(3); 341 if (name == null || "".equals(name)) name = externalId; 342 rd.setName(name); 343 rd.setSymbol(rs.getString(4)); 321 344 if (!QUICK_TRANSFER) 322 345 { 323 String name = rs.getString(3);324 if (name == null || "".equals(name)) name = externalId;325 rd.setName(name);326 rd.setSymbol(rs.getString(4));327 346 int columnIndex = 5; 328 347 for (String property : stringProperties) -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/SharedItemTransfer.java
r3679 r3709 83 83 private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger("net.sf.basedb.clients.migrate.SharedItemTransfer"); 84 84 85 SharedItemTransfer() 86 {} 87 85 88 SharedItemTransfer(UserTransfer userT, GroupTransfer groupT) 86 89 { -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/Transfer.java
r3683 r3709 32 32 import net.sf.basedb.core.ItemAlreadyExistsException; 33 33 import net.sf.basedb.core.SessionControl; 34 35 import java.io.IOException; 36 import java.io.ObjectInputStream; 37 import java.io.ObjectOutputStream; 34 38 import java.sql.Connection; 35 39 import java.sql.PreparedStatement; … … 613 617 return Integer.parseInt(value); 614 618 } 619 620 /** 621 Store ID map and some boolean flags 622 */ 623 protected void writeRestorePointData(ObjectOutputStream out) 624 throws IOException 625 { 626 out.writeBoolean(dependencyFailed); 627 out.writeBoolean(done); 628 out.writeBoolean(idMap != null); 629 if (idMap != null) out.writeObject(idMap); 630 } 631 632 /** 633 Store ID map and some boolean flags 634 */ 635 @SuppressWarnings("unchecked") 636 protected void readRestorePointData(ObjectInputStream in) 637 throws IOException, ClassNotFoundException 638 { 639 dependencyFailed = in.readBoolean(); 640 done = in.readBoolean(); 641 if (in.readBoolean()) 642 { 643 idMap = (Map<Integer, Integer>)in.readObject(); 644 } 645 } 646 615 647 } -
branches/2.4-stable/src/clients/migrate/net/sf/basedb/clients/migrate/UserTransfer.java
r3683 r3709 36 36 import net.sf.basedb.core.SystemItems; 37 37 import net.sf.basedb.core.User; 38 39 import java.io.IOException; 40 import java.io.ObjectInputStream; 41 import java.io.ObjectOutputStream; 38 42 import java.sql.PreparedStatement; 39 43 import java.sql.ResultSet; … … 90 94 */ 91 95 private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger("net.sf.basedb.clients.migrate.UserTransfer"); 96 97 UserTransfer(QuotaTransfer quotaT) 98 { 99 this.quotaT = quotaT; 100 } 92 101 93 102 /** … … 323 332 } 324 333 334 /** 335 Store quota map 336 */ 337 protected void writeRestorePointData(ObjectOutputStream out) 338 throws IOException 339 { 340 super.writeRestorePointData(out); 341 out.writeObject(base1FileQuota); 342 } 343 344 /** 345 Store ID map and some boolean flags 346 */ 347 @SuppressWarnings("unchecked") 348 protected void readRestorePointData(ObjectInputStream in) 349 throws IOException, ClassNotFoundException 350 { 351 super.readRestorePointData(in); 352 base1FileQuota = (Map<Integer, Long>)in.readObject(); 353 } 354 325 355 public User getUserById(DbControl dc, int base1Id) 326 356 {
Note: See TracChangeset
for help on using the changeset viewer.