Error when creating new record for a remixed Type


#1

I’m trying to remix FeatureContribution to add an additional field:

remix type FeatureContribution {
	value: double
}

Now, when creating a new FeatureContributionEntry, including a FeatureContribution with value for the newly added field, I get an error:

FeatureContributionEntry.create({
	id: "FCE001_" + DateTime.now().toString(),
    parent: {id: "AssetID_123"}, 
    riskScore: {id: "ABCD_1970-01-02"}, 
    timestamp: DateTime.now().toString(),
    contributions: [
      FeatureContribution.make({name: "Feature A", contribution: 0.5, value: 0.5})
    ]
})

"Write failed: Unable to create record for type FeatureContributionEntry with id FCE001_2019-02-01T19:41:27.473+10:00: Batch entry 0 INSERT INTO C3_2_FEATCONTR_CONTR (TENANT_TAG_ID,RID,KEY,NAME_S,CONTRIBUTION_D,VALUE_D) VALUES (6, 'FCE001_2019-02-01T19:41:27.473+10:00',0,'Feature A','0.5001254775720818','0.5000000000000000') was aborted: ERROR: column "value_d" of relation "c3_2_featcontr_contr" does not exist
  Position: 79  Call getNextException to see other errors in the batch.
ERROR: column "value_d" of relation "c3_2_featcontr_contr" does not exist
  Position: 79"

What additional steps should I do here to update this type and its underlying schema?

I can create new FeatureContributionEntry/FeatureContributions no problem if I don’t assign a value to FeatureContribution.value.


#2

Does c3ShowType(FeatureContribution) show the column correctly?
If yes, it could be an issue during provisioning, since the column did not get created in the underlying database: I would try to re-provision.


#3

@akatkinson Can you try the following:

  1. Provision with -r to make sure we force updating every type
  2. If one doesn’t work, try doing FeatureContributionEntry.upsertCollection()

If neither work, please a file a ticket and include:

  1. The url if this is happening on a live system so I can investigate it.
  2. File a ticket and give as much repro info as possible (e.g. is there a branch with your changes I can provision, if not, what should I base my provisioning on with the type def provided), and obviously include the type def specified above.

#4

@ishka Yes the new field was showing in c3ShowType.

@trothwein -r did the trick, thanks.