platform/angel_orm_generator/test/common.dart

37 lines
1.1 KiB
Dart
Raw Normal View History

2017-07-09 16:53:35 +00:00
import 'dart:async';
import 'dart:io';
2018-12-03 13:41:14 +00:00
import 'package:angel_orm/angel_orm.dart';
2017-07-09 16:53:35 +00:00
import 'package:postgres/postgres.dart';
2018-12-03 13:41:14 +00:00
Future<PostgresExecutor> connectToPostgres(Iterable<String> schemas) async {
2017-07-09 16:53:35 +00:00
var conn = new PostgreSQLConnection('127.0.0.1', 5432, 'angel_orm_test',
username: Platform.environment['POSTGRES_USERNAME'] ?? 'postgres',
password: Platform.environment['POSTGRES_PASSWORD'] ?? 'password');
await conn.open();
2017-08-01 05:45:54 +00:00
for (var s in schemas)
2018-12-03 16:50:43 +00:00
await conn.execute(await new File('test/migrations/$s.sql').readAsString());
2017-07-09 16:53:35 +00:00
2018-12-03 13:41:14 +00:00
return new PostgresExecutor(conn);
}
class PostgresExecutor extends QueryExecutor {
final PostgreSQLConnection connection;
PostgresExecutor(this.connection);
Future close() => connection.close();
@override
2018-12-03 16:50:43 +00:00
Future<List<List>> query(String query, [List<String> returningFields]) {
if (returningFields != null) {
var fields = returningFields.join(', ');
var returning = 'RETURNING $fields';
query = '$query $returning';
}
print('Running: $query');
return connection.query(query);
2018-12-03 13:41:14 +00:00
}
2017-07-09 16:53:35 +00:00
}