updateSchemaIfNeeded method
Implementation
Future<void> updateSchemaIfNeeded(DbContext dbc) async {
//fields
_meta_name = stringColumn("name", 150);
_meta_value = intColumn("value", allowNull: true);
_meta_text = stringColumn("text", 150, allowNull: true);
//table
_tbl_meta = this.newTable("ds_meta", [_meta_name, _meta_value, _meta_text]);
//this.startTransaction();
//create if not exists
await dbc.executeTransaction((transactionContext) async {
await transactionContext.create(_tbl_meta);
int ver = await currentVersion(transactionContext);
if (ver == -1) {
// insert version row
await this
.InsertInto(_tbl_meta)
.Values([_meta_name.Assign("schema version"), _meta_value.Assign(0)])
.execute(transactionContext);
//
ver = 0;
}
//
if (ver < _schemaUpdates.length) {
for (int i = ver; i < _schemaUpdates.length; i++) {
await _schemaUpdates[i].apply(transactionContext);
}
await _setSchemaVersion(transactionContext, _schemaUpdates.length);
}
});
//commit
//this.submitChanges();
}