Skip to content

Commit 93607b0

Browse files
committed
Added XML docs after initial implementation
1 parent 6578547 commit 93607b0

File tree

6 files changed

+89
-3
lines changed

6 files changed

+89
-3
lines changed

src/dbup-clickhouse/ClickHouseConnectionManager.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace DbUp.ClickHouse;
1212
public class ClickHouseConnectionManager : DatabaseConnectionManager
1313
{
1414
/// <summary>
15-
/// Creates a new ClickHouse database connection.
15+
/// Initializes a new instance of the <see cref="ClickHouseConnectionManager"/> class.
1616
/// </summary>
1717
/// <param name="connectionString">The ClickHouse connection string.</param>
1818
public ClickHouseConnectionManager(string connectionString)
@@ -29,6 +29,7 @@ private static IDbConnection CreateConnection(string connectionString)
2929
/// Splits the statements in the script using proper SQL parsing that handles comments and string literals.
3030
/// </summary>
3131
/// <param name="scriptContents">The contents of the script to split.</param>
32+
/// <returns>A collection of individual SQL statements.</returns>
3233
public override IEnumerable<string> SplitScriptIntoCommands(string scriptContents)
3334
{
3435
var statements = ClickHouseQueryParser.ParseRawQuery(scriptContents);

src/dbup-clickhouse/ClickHouseExtensions.cs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,61 @@ namespace DbUp.ClickHouse;
88
/// </summary>
99
public static class ClickHouseExtensions
1010
{
11+
/// <summary>
12+
/// Creates an upgrader for ClickHouse databases.
13+
/// </summary>
14+
/// <param name="supported">Fluent helper type.</param>
15+
/// <param name="connectionString">The connection string.</param>
16+
/// <returns>
17+
/// A builder for a database upgrader designed for ClickHouse databases.
18+
/// </returns>
1119
public static UpgradeEngineBuilder ClickHouseDatabase(this SupportedDatabases supported, string connectionString)
1220
=> ClickHouseDatabase(supported, connectionString, null);
1321

22+
/// <summary>
23+
/// Creates an upgrader for ClickHouse databases.
24+
/// </summary>
25+
/// <param name="supported">Fluent helper type.</param>
26+
/// <param name="connectionString">The connection string.</param>
27+
/// <param name="database">The ClickHouse database name to use.</param>
28+
/// <returns>
29+
/// A builder for a database upgrader designed for ClickHouse databases.
30+
/// </returns>
1431
public static UpgradeEngineBuilder ClickHouseDatabase(this SupportedDatabases supported, string connectionString, string database)
1532
=> ClickHouseDatabase(new ClickHouseConnectionManager(connectionString), database);
1633

34+
/// <summary>
35+
/// Creates an upgrader for ClickHouse databases.
36+
/// </summary>
37+
/// <param name="supported">Fluent helper type.</param>
38+
/// <param name="connectionManager">The <see cref="IConnectionManager"/> to be used during a database
39+
/// upgrade. See <see cref="ClickHouseConnectionManager"/> for an example implementation</param>
40+
/// <returns>
41+
/// A builder for a database upgrader designed for ClickHouse databases.
42+
/// </returns>
1743
public static UpgradeEngineBuilder ClickHouseDatabase(this SupportedDatabases supported, IConnectionManager connectionManager)
1844
=> ClickHouseDatabase(connectionManager);
1945

46+
/// <summary>
47+
/// Creates an upgrader for ClickHouse databases.
48+
/// </summary>
49+
/// <param name="connectionManager">The <see cref="IConnectionManager"/> to be used during a database
50+
/// upgrade. See <see cref="ClickHouseConnectionManager"/> for an example implementation</param>
51+
/// <returns>
52+
/// A builder for a database upgrader designed for ClickHouse databases.
53+
/// </returns>
2054
public static UpgradeEngineBuilder ClickHouseDatabase(IConnectionManager connectionManager)
2155
=> ClickHouseDatabase(connectionManager, null);
2256

57+
/// <summary>
58+
/// Creates an upgrader for ClickHouse databases.
59+
/// </summary>
60+
/// <param name="connectionManager">The <see cref="IConnectionManager"/> to be used during a database
61+
/// upgrade. See <see cref="ClickHouseConnectionManager"/> for an example implementation</param>
62+
/// <param name="schema">The database name to use.</param>
63+
/// <returns>
64+
/// A builder for a database upgrader designed for ClickHouse databases.
65+
/// </returns>
2366
public static UpgradeEngineBuilder ClickHouseDatabase(IConnectionManager connectionManager, string schema)
2467
{
2568
var builder = new UpgradeEngineBuilder();
@@ -30,6 +73,13 @@ public static UpgradeEngineBuilder ClickHouseDatabase(IConnectionManager connect
3073
return builder;
3174
}
3275

76+
/// <summary>
77+
/// Tracks the list of executed scripts in a ClickHouse table.
78+
/// </summary>
79+
/// <param name="builder">The builder.</param>
80+
/// <param name="schema">The database.</param>
81+
/// <param name="table">The table.</param>
82+
/// <returns></returns>
3383
public static UpgradeEngineBuilder JournalToClickHouseTable(this UpgradeEngineBuilder builder, string schema, string table)
3484
{
3585
builder.Configure(c => c.Journal = new ClickHouseJournal(() => c.ConnectionManager, () => c.Log, schema, table));

src/dbup-clickhouse/ClickHouseJournal.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,18 @@
55
namespace DbUp.ClickHouse;
66

77
/// <summary>
8-
/// Tracks the list of executed scripts in a ClickHouse table.
8+
/// An implementation of the <see cref="Engine.IJournal"/> interface which tracks version numbers for a
9+
/// ClickHouse database using a table called schemaversions.
910
/// </summary>
1011
public class ClickHouseJournal : TableJournal
1112
{
13+
/// <summary>
14+
/// Initializes a new instance of the <see cref="ClickHouseJournal"/> class.
15+
/// </summary>
16+
/// <param name="connectionManager">The connection manager.</param>
17+
/// <param name="logger">The log.</param>
18+
/// <param name="schema">The database that contains the table.</param>
19+
/// <param name="tableName">The table name.</param>
1220
public ClickHouseJournal(
1321
System.Func<IConnectionManager> connectionManager,
1422
System.Func<IUpgradeLog> logger,
@@ -18,12 +26,15 @@ public ClickHouseJournal(
1826
{
1927
}
2028

29+
/// <inheritdoc/>
2130
protected override string GetInsertJournalEntrySql(string scriptName, string applied)
2231
=> $"INSERT INTO {FqSchemaTableName} (ScriptName, Applied) VALUES ({scriptName}, {applied})";
2332

33+
/// <inheritdoc/>
2434
protected override string GetJournalEntriesSql()
2535
=> $"SELECT ScriptName FROM {FqSchemaTableName} ORDER BY ScriptName";
2636

37+
/// <inheritdoc/>
2738
protected override string CreateSchemaTableSql(string quotedPrimaryKeyName)
2839
=> $"""
2940
CREATE TABLE {FqSchemaTableName}
@@ -34,6 +45,8 @@ Applied DateTime
3445
ENGINE = MergeTree()
3546
ORDER BY (ScriptName)
3647
""";
48+
49+
/// <inheritdoc/>
3750
protected override string DoesTableExistSql()
3851
{
3952
return string.IsNullOrEmpty(SchemaTableSchema)

src/dbup-clickhouse/ClickHouseObjectParser.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,14 @@ namespace DbUp.ClickHouse;
55
/// <summary>
66
/// Parses SQL Objects and performs quoting functions for ClickHouse.
77
/// </summary>
8-
public class ClickHouseObjectParser() : SqlObjectParser("`", "`");
8+
public class ClickHouseObjectParser : SqlObjectParser
9+
{
10+
/// <summary>
11+
/// Initializes a new instance of the <see cref="ClickHouseObjectParser"/> class.
12+
/// </summary>
13+
public ClickHouseObjectParser()
14+
: base("`", "`")
15+
{
16+
}
17+
}
918

src/dbup-clickhouse/ClickHousePreprocessor.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ namespace DbUp.ClickHouse;
77
/// </summary>
88
public class ClickHousePreprocessor : IScriptPreprocessor
99
{
10+
/// <summary>
11+
/// Processes the script contents. This implementation returns the contents unchanged.
12+
/// </summary>
13+
/// <param name="contents">The script contents to process.</param>
14+
/// <returns>The processed script contents.</returns>
1015
public string Process(string contents) => contents;
1116
}
1217

src/dbup-clickhouse/ClickHouseScriptExecutor.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ public class ClickHouseScriptExecutor : ScriptExecutor
1414
/// <summary>
1515
/// Initializes an instance of the <see cref="ClickHouseScriptExecutor"/> class.
1616
/// </summary>
17+
/// <param name="connectionManagerFactory"></param>
18+
/// <param name="log">The logging mechanism.</param>
19+
/// <param name="schema">The database that contains the table.</param>
20+
/// <param name="variablesEnabled">Function that returns <c>true</c> if variables should be replaced, <c>false</c> otherwise.</param>
21+
/// <param name="scriptPreprocessors">Script Preprocessors in addition to variable substitution</param>
22+
/// <param name="journalFactory">Database journal</param>
1723
public ClickHouseScriptExecutor(
1824
Func<IConnectionManager> connectionManagerFactory,
1925
Func<IUpgradeLog> log,
@@ -25,9 +31,11 @@ public ClickHouseScriptExecutor(
2531
{
2632
}
2733

34+
/// <inheritdoc/>
2835
protected override string GetVerifySchemaSql(string schema)
2936
=> $"CREATE DATABASE IF NOT EXISTS {schema}";
3037

38+
/// <inheritdoc/>
3139
protected override void ExecuteCommandsWithinExceptionHandler(int index, SqlScript script, Action executeCommand)
3240
{
3341
try

0 commit comments

Comments
 (0)