Class PostgreSqlDatabaseFactory
- Namespace
- LfrlAnvil.PostgreSql
- Assembly
- LfrlAnvil.PostgreSql.dll
Represents a factory of SQL databases.
public sealed class PostgreSqlDatabaseFactory : SqlDatabaseFactory<PostgreSqlDatabase>, ISqlDatabaseFactory
- Inheritance
-
PostgreSqlDatabaseFactory
- Implements
- Inherited Members
Remarks
PostgreSqlDialect implementation.
Constructors
PostgreSqlDatabaseFactory(PostgreSqlDatabaseFactoryOptions?)
Creates a new PostgreSqlDatabaseFactory instance.
public PostgreSqlDatabaseFactory(PostgreSqlDatabaseFactoryOptions? options = null)
Parameters
options
PostgreSqlDatabaseFactoryOptions?Optional PostgreSqlDatabaseFactoryOptions. Equal to Default by default.
Properties
Options
PostgreSqlDatabaseFactoryOptions instance associated with this factory that contains DB creation options.
public PostgreSqlDatabaseFactoryOptions Options { get; }
Property Value
Methods
CreateConnection(DbConnectionStringBuilder)
Creates a new unopened DbConnection instance.
[Pure]
protected override NpgsqlConnection CreateConnection(DbConnectionStringBuilder connectionString)
Parameters
connectionString
DbConnectionStringBuilderConnection string builder.
Returns
- NpgsqlConnection
New DbConnection instance.
CreateConnectionStringBuilder(string)
Creates a new DbConnectionStringBuilder instance.
[Pure]
protected override NpgsqlConnectionStringBuilder CreateConnectionStringBuilder(string connectionString)
Parameters
connectionString
stringConnection string.
Returns
- NpgsqlConnectionStringBuilder
New DbConnectionStringBuilder instance.
CreateDatabase(SqlDatabaseBuilder, DbConnectionStringBuilder, DbConnection, DbConnectionEventHandler, SqlQueryReaderExecutor<SqlDatabaseVersionRecord>, Version)
Creates a new SqlDatabase instance.
protected override PostgreSqlDatabase CreateDatabase(SqlDatabaseBuilder builder, DbConnectionStringBuilder connectionString, DbConnection connection, DbConnectionEventHandler eventHandler, SqlQueryReaderExecutor<SqlDatabaseVersionRecord> versionHistoryRecordsQuery, Version version)
Parameters
builder
SqlDatabaseBuilderSource database builder.
connectionString
DbConnectionStringBuilderConnection string builder.
connection
DbConnectionOpened connection to the database.
eventHandler
DbConnectionEventHandlerCollection of SqlDatabaseConnectionChangeEvent callbacks.
versionHistoryRecordsQuery
SqlQueryReaderExecutor<SqlDatabaseVersionRecord>Query reader's executor capable of reading metadata of all versions applied to the database.
version
VersionCurrent version of the database.
Returns
- PostgreSqlDatabase
New SqlDatabase instance.
CreateDatabaseBuilder(string, DbConnection)
Creates a new SqlDatabaseBuilder instance.
protected override PostgreSqlDatabaseBuilder CreateDatabaseBuilder(string defaultSchemaName, DbConnection connection)
Parameters
defaultSchemaName
stringInitial name of the Default schema. Version history table will belong to this schema.
connection
DbConnectionOpened connection to the database.
Returns
- PostgreSqlDatabaseBuilder
New SqlDatabaseBuilder instance.
FinalizeConnectionPreparations(DbConnectionStringBuilder, DbConnection, SqlNodeInterpreter, ref SqlDatabaseFactoryStatementExecutor)
Finalizes DB connection preparations. This method is invoked right before version history table initialization.
protected override void FinalizeConnectionPreparations(DbConnectionStringBuilder connectionString, DbConnection connection, SqlNodeInterpreter nodeInterpreter, ref SqlDatabaseFactoryStatementExecutor executor)
Parameters
connectionString
DbConnectionStringBuilderConnection string builder.
connection
DbConnectionOpened connection to the database.
nodeInterpreter
SqlNodeInterpreterSqlNodeInterpreter instance.
executor
SqlDatabaseFactoryStatementExecutorDecorator for executing SQL statements on the database.
GetChangeTrackerAttachmentForVersionHistoryTableInit(SqlDatabaseChangeTracker, SqlSchemaObjectName, SqlNodeInterpreter, DbConnection, ref SqlDatabaseFactoryStatementExecutor)
Checks whether or not the version history table should be attached as a change from which an SQL statement should be created and executed.
protected override bool GetChangeTrackerAttachmentForVersionHistoryTableInit(SqlDatabaseChangeTracker changeTracker, SqlSchemaObjectName versionHistoryTableName, SqlNodeInterpreter nodeInterpreter, DbConnection connection, ref SqlDatabaseFactoryStatementExecutor executor)
Parameters
changeTracker
SqlDatabaseChangeTrackerDatabase builder's change tracker.
versionHistoryTableName
SqlSchemaObjectNameName of the version history table.
nodeInterpreter
SqlNodeInterpreterSqlNodeInterpreter instance.
connection
DbConnectionOpened connection to the database.
executor
SqlDatabaseFactoryStatementExecutorDecorator for executing SQL statements on the database.
Returns
- bool
true when version history table should be created in the database, otherwise false.
Remarks
This method can also be used for registering other common database objects.
GetDefaultVersionHistoryName()
Creates a new SqlSchemaObjectName instance that represents default version history table name.
[Pure]
protected override SqlSchemaObjectName GetDefaultVersionHistoryName()
Returns
- SqlSchemaObjectName
New SqlSchemaObjectName instance.
VersionHistoryTableBuilderInit(SqlTableBuilder)
Initializes the version history table builder.
protected override void VersionHistoryTableBuilderInit(SqlTableBuilder builder)
Parameters
builder
SqlTableBuilderVersion history table builder.