create method
Implementation
TableDefinition create(String tableName, Function(Schema) callback,
[bool ifNotExists = false]) {
_schemaBuilder.reset();
_schemaBuilder.setTableName(tableName);
Future<void> createFunction() async {
callback(_schemaBuilder);
String sql = _schemaBuilder.generateCreateTableSql(tableName,
ifNotExists: ifNotExists);
if (_adapter != null && _adapter.driverName == 'pgsql') {
final postgresAdapter = _adapter as dynamic;
if (postgresAdapter.executeStatements != null) {
await postgresAdapter.executeStatements(sql,
(List<String> statements) async {
for (String statement in statements) {
await _connection.connection!.execute(statement);
}
});
return;
}
}
if (_adapter != null) {
sql = _adapter.adaptQuery(sql);
}
try {
await _connection.connection!.execute(sql);
} on QueryException catch (e) {
stderr.writeln(
'Error executing statement: $sql\nError: ${e.cause}',
);
exit(0);
}
}
return TableDefinition(tableName, createFunction,
connection: _connection, adapter: _adapter);
}