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
optionsPostgreSqlDatabaseFactoryOptions?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
connectionStringDbConnectionStringBuilderConnection string builder.
Returns
- NpgsqlConnection
New DbConnection instance.
CreateConnectionStringBuilder(string)
Creates a new DbConnectionStringBuilder instance.
[Pure]
protected override NpgsqlConnectionStringBuilder CreateConnectionStringBuilder(string connectionString)
Parameters
connectionStringstringConnection 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
builderSqlDatabaseBuilderSource database builder.
connectionStringDbConnectionStringBuilderConnection string builder.
connectionDbConnectionOpened connection to the database.
eventHandlerDbConnectionEventHandlerCollection of SqlDatabaseConnectionChangeEvent callbacks.
versionHistoryRecordsQuerySqlQueryReaderExecutor<SqlDatabaseVersionRecord>Query reader's executor capable of reading metadata of all versions applied to the database.
versionVersionCurrent 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
defaultSchemaNamestringInitial name of the Default schema. Version history table will belong to this schema.
connectionDbConnectionOpened 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
connectionStringDbConnectionStringBuilderConnection string builder.
connectionDbConnectionOpened connection to the database.
nodeInterpreterSqlNodeInterpreterSqlNodeInterpreter instance.
executorSqlDatabaseFactoryStatementExecutorDecorator 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
changeTrackerSqlDatabaseChangeTrackerDatabase builder's change tracker.
versionHistoryTableNameSqlSchemaObjectNameName of the version history table.
nodeInterpreterSqlNodeInterpreterSqlNodeInterpreter instance.
connectionDbConnectionOpened connection to the database.
executorSqlDatabaseFactoryStatementExecutorDecorator 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
builderSqlTableBuilderVersion history table builder.