Examples of CKeyspaceDefinitionMigrator


Examples of com.pardot.rhombus.cobject.migrations.CKeyspaceDefinitionMigrator

    CKeyspaceDefinition OldKeyspaceDefinition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "CKeyspaceTestData.js");
    CKeyspaceDefinition NewKeyspaceDefinition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "CKeyspaceTestData.js");
    CDefinition NewObjectDefinition = JsonUtil.objectFromJsonResource(CDefinition.class, this.getClass().getClassLoader(), "MigrationTestCDefinition.js");
    NewKeyspaceDefinition.getDefinitions().put(NewObjectDefinition.getName(),NewObjectDefinition);

    CKeyspaceDefinitionMigrator subject = new CKeyspaceDefinitionMigrator(OldKeyspaceDefinition, NewKeyspaceDefinition);
    assertTrue(subject.isMigratable());

    //now try adding an field (which is now supported)
    NewKeyspaceDefinition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "CKeyspaceTestData.js");
    CField newField = new CField("newfield", CField.CDataType.VARCHAR);
    NewKeyspaceDefinition.getDefinitions().get("testtype").getFields().put(newField.getName(),newField);
    subject = new CKeyspaceDefinitionMigrator(OldKeyspaceDefinition, NewKeyspaceDefinition);
    assertTrue(subject.isMigratable());

    //now try changing the type of a field (which is not supported)
    NewKeyspaceDefinition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "CKeyspaceTestData.js");
    CField changedField = new CField("filtered", CField.CDataType.VARCHAR);
    NewKeyspaceDefinition.getDefinitions().get("testtype").getFields().put(changedField.getName(),changedField);
    subject = new CKeyspaceDefinitionMigrator(OldKeyspaceDefinition, NewKeyspaceDefinition);
    assertFalse(subject.isMigratable());

    //now change it back and it should work
    changedField = new CField("filtered", CField.CDataType.INT);
    NewKeyspaceDefinition.getDefinitions().get("testtype").getFields().put(changedField.getName(),changedField);
    subject = new CKeyspaceDefinitionMigrator(OldKeyspaceDefinition, NewKeyspaceDefinition);
    assertTrue(subject.isMigratable());

    //now add an ID field which is not supported (because you can never change the type of the id)
    //now try adding an field (which is now supported)
    NewKeyspaceDefinition = JsonUtil.objectFromJsonResource(CKeyspaceDefinition.class, this.getClass().getClassLoader(), "CKeyspaceTestData.js");
    newField = new CField("id", CField.CDataType.VARCHAR);
    NewKeyspaceDefinition.getDefinitions().get("testtype").getFields().put(newField.getName(),newField);
    subject = new CKeyspaceDefinitionMigrator(OldKeyspaceDefinition, NewKeyspaceDefinition);
    assertFalse(subject.isMigratable());

  }
View Full Code Here

Examples of com.pardot.rhombus.cobject.migrations.CKeyspaceDefinitionMigrator

    //add new object
    CDefinition NewObjectDefinition = JsonUtil.objectFromJsonResource(CDefinition.class, this.getClass().getClassLoader(), "MigrationTestCDefinition.js");
    NewKeyspaceDefinition.getDefinitions().put(NewObjectDefinition.getName(),NewObjectDefinition);

    //Construct the object. It should be migratable
    CKeyspaceDefinitionMigrator subject = new CKeyspaceDefinitionMigrator(OldKeyspaceDefinition, NewKeyspaceDefinition);
    assertTrue(subject.isMigratable());

    //Now verify that the correct CQL is generated for the migration
    CObjectCQLGenerator cqlGenerator = new CObjectCQLGenerator(OldKeyspaceDefinition.getName(), 1000);
    CQLStatementIterator result = subject.getMigrationCQL(cqlGenerator);
    assertEquals("ALTER TABLE \"functional\".\"testtype\" add newfield varchar", result.next().getQuery());
    assertEquals("ALTER TABLE \"functional\".\"testtype6671808f3f51bcc53ddc76d2419c9060\" add newfield varchar", result.next().getQuery());
    assertEquals("ALTER TABLE \"functional\".\"testtypef9bf3332bb4ec879849ec43c67776131\" add newfield varchar", result.next().getQuery());
    assertEquals("ALTER TABLE \"functional\".\"testtype7f9bb4e56d3cae5b11c553547cfe5897\" add newfield varchar", result.next().getQuery());
View Full Code Here

Examples of com.pardot.rhombus.cobject.migrations.CKeyspaceDefinitionMigrator

  public List<CQLStatement> runMigration(CKeyspaceDefinition oldKeyspaceDefinition, CKeyspaceDefinition newKeyspaceDefinition, boolean executeCql) throws CObjectMigrationException {
    List<CQLStatement> ret = Lists.newArrayList();
    try{
      //we have the keyspace definitions, now run the migration
      CKeyspaceDefinitionMigrator migrator = new CKeyspaceDefinitionMigrator(oldKeyspaceDefinition, newKeyspaceDefinition);
      CQLStatementIterator cqlit = migrator.getMigrationCQL(this.cqlGenerator);
      while(cqlit.hasNext()){
        CQLStatement statement = cqlit.next();
        ret.add(statement);
        if(executeCql){
          cqlExecutor.executeSync(statement);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.