PostgreSQLContainerConfig constructor
PostgreSQLContainerConfig({})
Implementation
PostgreSQLContainerConfig(
{this.pgUser = 'postgres',
this.pgPassword = 'postgres',
this.pgDatabase = 'postgres',
int? hostPort})
: super(
'postgres',
version: 'latest',
hostPorts: hostPort != null ? [hostPort] : null,
containerPorts: [5432],
environment: {
'POSTGRES_USER': pgUser,
'POSTGRES_PASSWORD': pgPassword,
'POSTGRES_DB': pgDatabase,
},
outputAsLines: true,
stdoutReadyFunction: (output, data) {
var lines = data is List ? data : [data];
var readyForConnections = lines.any((l) =>
l.contains('database system is ready to accept connections'));
if (!readyForConnections) return false;
var allLines = output.dataAsListOfStrings;
var initComplete = allLines.indexWhere(
(l) => l.contains('PostgreSQL init process complete;'));
if (initComplete < 0) return false;
var afterComplete = allLines.sublist(initComplete);
readyForConnections = afterComplete.any((l) =>
l.contains('database system is ready to accept connections'));
print(readyForConnections);
return readyForConnections;
},
stderrReadyFunction: (output, data) {
var lines = data is List ? data : [data];
var readyForConnections = lines.any((l) =>
l.contains('database system is ready to accept connections'));
return readyForConnections;
},
) {
if (pgUser.trim().isEmpty) {
throw ArgumentError('Invalid pgUser: $pgUser');
}
if (pgDatabase.trim().isEmpty) {
throw ArgumentError('Invalid pgDatabase: $pgDatabase');
}
if (pgPassword.isEmpty) {
throw ArgumentError('Invalid pgPassword: $pgUser');
}
}