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