migrate method
Implementation
Future<void> migrate() async {
if (!await tableExists()) {
print("table exists? NO");
await createTable();
return;
}
Set<String> colSet = await tableFields();
for (TableColumn f in fields) {
if (!colSet.contains(f.columnName)) {
await addColumn(f);
}
}
Set<String> idxSet = {};
Set<String> idxs = await listIndex();
for (String idx in idxs) {
final fs = await indexFields(idx);
idxSet.addAll(fs);
}
for (TableColumn f in fields) {
if (f.proto.primaryKey || f.proto.unique || notBlank(f.proto.uniqueName)) continue;
if (f.proto.index && !idxSet.contains(f.columnName)) {
await createIndex([f.columnName]);
}
}
}