createTableIfNotExists method

  1. @Deprecated('createTableIfNotExists will be deprecated in version 1.1.0')
TableDefinition createTableIfNotExists(
  1. String tableName,
  2. dynamic callback(
    1. Schema
    )
)

Implementation

@Deprecated('createTableIfNotExists will be deprecated in version 1.1.0')
TableDefinition createTableIfNotExists(
    String tableName, Function(Schema) callback) {
  _schemaBuilder.reset();
  _schemaBuilder.setTableName(tableName);

  Future<void> createFunction() async {
    callback(_schemaBuilder);

    String sql =
        _schemaBuilder.generateCreateTableSql(tableName, ifNotExists: true);
    if (_adapter != null && _adapter.driverName == 'pgsql') {
      final postgresAdapter = _adapter as dynamic;
      if (postgresAdapter.executeStatements != null) {
        await postgresAdapter.executeStatements(sql,
            (String statement) async {
          try {
            await _connection.connection!.execute(statement);
          } on QueryException catch (e) {
            stderr.writeln(
              'Error executing statement: $statement\nError: ${e.cause}',
            );
            exit(0);
          }
        });
        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);
}