mirror of
https://github.com/bitwarden/server.git
synced 2024-11-30 13:33:24 +01:00
b38b537ed1
* Addd variable for production migration transaction level * Added variable for production migration transaction level with default value * Clean up comments * Removed uneeded directive * Changed time format for timeout on migration * white space formatting * white space formatting again * white space formatting once again * white space formatting once again * clean up * CHnaged to builder.WithoutTransaction() * Changed to optyion flag from n to nt for notransaction * Changed to optyion flag from n to no-transaction for without transaction * Change desription of option --------- Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
42 lines
1.6 KiB
C#
42 lines
1.6 KiB
C#
using Bit.Migrator;
|
|
using CommandDotNet;
|
|
|
|
internal class Program
|
|
{
|
|
private static int Main(string[] args)
|
|
{
|
|
return new AppRunner<Program>().Run(args);
|
|
}
|
|
|
|
[DefaultCommand]
|
|
public void Execute(
|
|
[Operand(Description = "Database connection string")]
|
|
string databaseConnectionString,
|
|
[Option('r', "repeatable", Description = "Mark scripts as repeatable")]
|
|
bool repeatable = false,
|
|
[Option('f', "folder", Description = "Folder name of database scripts")]
|
|
string folderName = MigratorConstants.DefaultMigrationsFolderName,
|
|
[Option('d', "dry-run", Description = "Print the scripts that will be applied without actually executing them")]
|
|
bool dryRun = false,
|
|
[Option("no-transaction", Description = "Run without adding transaction per script or all scripts")]
|
|
bool noTransactionMigration = false
|
|
) => MigrateDatabase(databaseConnectionString, repeatable, folderName, dryRun, noTransactionMigration);
|
|
|
|
private static bool MigrateDatabase(string databaseConnectionString,
|
|
bool repeatable = false, string folderName = "", bool dryRun = false, bool noTransactionMigration = false)
|
|
{
|
|
var migrator = new DbMigrator(databaseConnectionString, noTransactionMigration: noTransactionMigration);
|
|
bool success;
|
|
if (!string.IsNullOrWhiteSpace(folderName))
|
|
{
|
|
success = migrator.MigrateMsSqlDatabaseWithRetries(true, repeatable, folderName, dryRun: dryRun);
|
|
}
|
|
else
|
|
{
|
|
success = migrator.MigrateMsSqlDatabaseWithRetries(true, repeatable, dryRun: dryRun);
|
|
}
|
|
|
|
return success;
|
|
}
|
|
}
|