1
0
mirror of https://github.com/bitwarden/server.git synced 2024-11-22 12:15:36 +01:00
bitwarden-server/util/MsSqlMigratorUtility/Program.cs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

40 lines
1.4 KiB
C#
Raw Normal View History

using Bit.Migrator;
[DEVOPS-1519] Add transition mode to mssql migrator utility (#3259) * Add RerunableSqlTableJournal * Add extension to use rerunable sql table journal * Use rerunable sql journal * format * Enable logging * FIx * Disable logging * Rename to SqlTableJournalExtensions * Move RerunableSqlTableJournal to Extension class * Fix usings * Add rerunable schema * Format * Fix typo * Enable logging in db migrator * add rerunable column in dbo migrations table migration * Trying * Fix journal table name * Trying to migrate first * After migration * Testing * Add update from rerunable to not rerunable script * Change name * Add rerunable option and script folder name * Add rerunable options and folder * Fix * Add transition (aka rerunable) migrations to Setup * Parse parameters on migrator utility * Fix sql scripts * Remove CreateSchemaTableSql as it'll be migrated using migration * Embed dbScripts_data_migration folder * Remove testing sql script * Add optins parsing nuget for msSqlMigratorUtility * Fix sql journal * Ran dotnet format * Comment out index * ▫️Revert "Comment out index" This reverts commit df15fa91e05d5b195e130c36e5ae51fc508b2506. * Disable logging * Add newline * Rename rerunable to repeatable * remove repeatable journal * Remove migration adding the repeatable column in dbo.Migrations table * Add using * Enable log for testing * Disable logging in the setup * Remove unused method * Add migrator constants * Use constants in yet another place * Fix * Add constant * Fix * Fix
2023-09-28 16:29:52 +02:00
using CommandDotNet;
internal class Program
{
private static int Main(string[] args)
{
[DEVOPS-1519] Add transition mode to mssql migrator utility (#3259) * Add RerunableSqlTableJournal * Add extension to use rerunable sql table journal * Use rerunable sql journal * format * Enable logging * FIx * Disable logging * Rename to SqlTableJournalExtensions * Move RerunableSqlTableJournal to Extension class * Fix usings * Add rerunable schema * Format * Fix typo * Enable logging in db migrator * add rerunable column in dbo migrations table migration * Trying * Fix journal table name * Trying to migrate first * After migration * Testing * Add update from rerunable to not rerunable script * Change name * Add rerunable option and script folder name * Add rerunable options and folder * Fix * Add transition (aka rerunable) migrations to Setup * Parse parameters on migrator utility * Fix sql scripts * Remove CreateSchemaTableSql as it'll be migrated using migration * Embed dbScripts_data_migration folder * Remove testing sql script * Add optins parsing nuget for msSqlMigratorUtility * Fix sql journal * Ran dotnet format * Comment out index * ▫️Revert "Comment out index" This reverts commit df15fa91e05d5b195e130c36e5ae51fc508b2506. * Disable logging * Add newline * Rename rerunable to repeatable * remove repeatable journal * Remove migration adding the repeatable column in dbo.Migrations table * Add using * Enable log for testing * Disable logging in the setup * Remove unused method * Add migrator constants * Use constants in yet another place * Fix * Add constant * Fix * Fix
2023-09-28 16:29:52 +02:00
return new AppRunner<Program>().Run(args);
}
[DEVOPS-1519] Add transition mode to mssql migrator utility (#3259) * Add RerunableSqlTableJournal * Add extension to use rerunable sql table journal * Use rerunable sql journal * format * Enable logging * FIx * Disable logging * Rename to SqlTableJournalExtensions * Move RerunableSqlTableJournal to Extension class * Fix usings * Add rerunable schema * Format * Fix typo * Enable logging in db migrator * add rerunable column in dbo migrations table migration * Trying * Fix journal table name * Trying to migrate first * After migration * Testing * Add update from rerunable to not rerunable script * Change name * Add rerunable option and script folder name * Add rerunable options and folder * Fix * Add transition (aka rerunable) migrations to Setup * Parse parameters on migrator utility * Fix sql scripts * Remove CreateSchemaTableSql as it'll be migrated using migration * Embed dbScripts_data_migration folder * Remove testing sql script * Add optins parsing nuget for msSqlMigratorUtility * Fix sql journal * Ran dotnet format * Comment out index * ▫️Revert "Comment out index" This reverts commit df15fa91e05d5b195e130c36e5ae51fc508b2506. * Disable logging * Add newline * Rename rerunable to repeatable * remove repeatable journal * Remove migration adding the repeatable column in dbo.Migrations table * Add using * Enable log for testing * Disable logging in the setup * Remove unused method * Add migrator constants * Use constants in yet another place * Fix * Add constant * Fix * Fix
2023-09-28 16:29:52 +02:00
[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
) => MigrateDatabase(databaseConnectionString, repeatable, folderName, dryRun);
private static bool MigrateDatabase(string databaseConnectionString,
bool repeatable = false, string folderName = "", bool dryRun = false)
{
var migrator = new DbMigrator(databaseConnectionString);
bool success;
[DEVOPS-1519] Add transition mode to mssql migrator utility (#3259) * Add RerunableSqlTableJournal * Add extension to use rerunable sql table journal * Use rerunable sql journal * format * Enable logging * FIx * Disable logging * Rename to SqlTableJournalExtensions * Move RerunableSqlTableJournal to Extension class * Fix usings * Add rerunable schema * Format * Fix typo * Enable logging in db migrator * add rerunable column in dbo migrations table migration * Trying * Fix journal table name * Trying to migrate first * After migration * Testing * Add update from rerunable to not rerunable script * Change name * Add rerunable option and script folder name * Add rerunable options and folder * Fix * Add transition (aka rerunable) migrations to Setup * Parse parameters on migrator utility * Fix sql scripts * Remove CreateSchemaTableSql as it'll be migrated using migration * Embed dbScripts_data_migration folder * Remove testing sql script * Add optins parsing nuget for msSqlMigratorUtility * Fix sql journal * Ran dotnet format * Comment out index * ▫️Revert "Comment out index" This reverts commit df15fa91e05d5b195e130c36e5ae51fc508b2506. * Disable logging * Add newline * Rename rerunable to repeatable * remove repeatable journal * Remove migration adding the repeatable column in dbo.Migrations table * Add using * Enable log for testing * Disable logging in the setup * Remove unused method * Add migrator constants * Use constants in yet another place * Fix * Add constant * Fix * Fix
2023-09-28 16:29:52 +02:00
if (!string.IsNullOrWhiteSpace(folderName))
{
success = migrator.MigrateMsSqlDatabaseWithRetries(true, repeatable, folderName, dryRun);
[DEVOPS-1519] Add transition mode to mssql migrator utility (#3259) * Add RerunableSqlTableJournal * Add extension to use rerunable sql table journal * Use rerunable sql journal * format * Enable logging * FIx * Disable logging * Rename to SqlTableJournalExtensions * Move RerunableSqlTableJournal to Extension class * Fix usings * Add rerunable schema * Format * Fix typo * Enable logging in db migrator * add rerunable column in dbo migrations table migration * Trying * Fix journal table name * Trying to migrate first * After migration * Testing * Add update from rerunable to not rerunable script * Change name * Add rerunable option and script folder name * Add rerunable options and folder * Fix * Add transition (aka rerunable) migrations to Setup * Parse parameters on migrator utility * Fix sql scripts * Remove CreateSchemaTableSql as it'll be migrated using migration * Embed dbScripts_data_migration folder * Remove testing sql script * Add optins parsing nuget for msSqlMigratorUtility * Fix sql journal * Ran dotnet format * Comment out index * ▫️Revert "Comment out index" This reverts commit df15fa91e05d5b195e130c36e5ae51fc508b2506. * Disable logging * Add newline * Rename rerunable to repeatable * remove repeatable journal * Remove migration adding the repeatable column in dbo.Migrations table * Add using * Enable log for testing * Disable logging in the setup * Remove unused method * Add migrator constants * Use constants in yet another place * Fix * Add constant * Fix * Fix
2023-09-28 16:29:52 +02:00
}
else
{
success = migrator.MigrateMsSqlDatabaseWithRetries(true, repeatable, dryRun: dryRun);
[DEVOPS-1519] Add transition mode to mssql migrator utility (#3259) * Add RerunableSqlTableJournal * Add extension to use rerunable sql table journal * Use rerunable sql journal * format * Enable logging * FIx * Disable logging * Rename to SqlTableJournalExtensions * Move RerunableSqlTableJournal to Extension class * Fix usings * Add rerunable schema * Format * Fix typo * Enable logging in db migrator * add rerunable column in dbo migrations table migration * Trying * Fix journal table name * Trying to migrate first * After migration * Testing * Add update from rerunable to not rerunable script * Change name * Add rerunable option and script folder name * Add rerunable options and folder * Fix * Add transition (aka rerunable) migrations to Setup * Parse parameters on migrator utility * Fix sql scripts * Remove CreateSchemaTableSql as it'll be migrated using migration * Embed dbScripts_data_migration folder * Remove testing sql script * Add optins parsing nuget for msSqlMigratorUtility * Fix sql journal * Ran dotnet format * Comment out index * ▫️Revert "Comment out index" This reverts commit df15fa91e05d5b195e130c36e5ae51fc508b2506. * Disable logging * Add newline * Rename rerunable to repeatable * remove repeatable journal * Remove migration adding the repeatable column in dbo.Migrations table * Add using * Enable log for testing * Disable logging in the setup * Remove unused method * Add migrator constants * Use constants in yet another place * Fix * Add constant * Fix * Fix
2023-09-28 16:29:52 +02:00
}
return success;
}
}