migrate method

Future<void> migrate()

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]);
    }
  }
}