Exemple #1
0
        private static string GenerateCreateDbSql(string databaseName, CreateDatabaseSettings settings)
        {
            var sb = new StringBuilder($" create database {Sql.EscapeName(databaseName)}");

            if (settings.PrimaryFile != null || settings.LogFile != null)
            {
                sb.Append(" ON ");
            }

#pragma warning disable S1135  // Track uses of "TODO" tags
#pragma warning disable MA0026 // Fix TODO comment
            if (settings.PrimaryFile != null)
            {
                // TODO replace with param
                sb.Append(" PRIMARY (Name = ")
                .Append(Sql.EscapeName(settings.PrimaryFile.Name))
                .Append(", FILENAME = '")
                .Append(settings.PrimaryFile.FileName)
                .Append("') ");
            }
#pragma warning restore MA0026 // Fix TODO comment
#pragma warning restore S1135  // Track uses of "TODO" tags

            if (settings.LogFile != null)
            {
                sb.Append(" LOG ON (NAME = ")
                .Append(Sql.EscapeName(settings.LogFile.Name))
                .Append(", FILENAME = '")
                .Append(settings.LogFile.FileName)
                .Append("') ");
            }

            return(sb.ToString());
        }
        private static string GenerateCreateDbSql(String databaseName, CreateDatabaseSettings settings)
        {
            var createDbSql = $" create database {Sql.EscapeName(databaseName)}";

            if (settings.PrimaryFile != null || settings.LogFile != null)
            {
                createDbSql += " ON ";
            }
            if (settings.PrimaryFile != null)
            {
                createDbSql += $" PRIMARY (Name = {Sql.EscapeName(settings.PrimaryFile.Name)}, FILENAME = '{settings.PrimaryFile.FileName}') "; // TODO replace with param
            }
            if (settings.LogFile != null)
            {
                createDbSql += $" LOG ON (NAME = {Sql.EscapeName(settings.LogFile.Name)}, FILENAME = '{settings.LogFile.FileName}') ";
            }
            return(createDbSql);
        }
        public static void DropAndCreateDatabase(this ICakeContext context, String connectionString, String databaseName, CreateDatabaseSettings settings)
        {
            Guard.ArgumentIsNotNull(context, nameof(context));
            Guard.ArgumentIsNotNull(connectionString, nameof(connectionString));
            Guard.ArgumentIsNotNull(databaseName, nameof(databaseName));
            Guard.ArgumentIsNotNull(settings, nameof(settings));

            SqlServerAliasesImpl.DropAndCreateDatabase(context, connectionString, databaseName, settings);
        }
        internal static void CreateDatabaseIfNotExists(ICakeContext context, String connectionString, String databaseName, CreateDatabaseSettings settings)
        {
            settings.AssignNames(databaseName);

            var sql = GenerateCreateDbSql(databaseName, settings);

            sql = "if (select DB_ID(@DatabaseName)) is null " + sql;

            using (var connection = OpenSqlConnection(context, connectionString))
            {
                context.Log.Debug($"Executing SQL : {sql}");

                var command = CreateSqlCommand(sql, connection);
                command.Parameters.AddWithValue("@DatabaseName", databaseName);

                command.ExecuteNonQuery();
                context.Log.Information($"Database {databaseName} is created if it was not there");
            }
        }
 internal static void DropAndCreateDatabase(ICakeContext context, String connectionString, String databaseName, CreateDatabaseSettings settings)
 {
     DropDatabase(context, connectionString, databaseName);
     CreateDatabase(context, connectionString, databaseName, settings);
 }
        internal static void CreateDatabase(ICakeContext context, String connectionString, String databaseName, CreateDatabaseSettings settings)
        {
            settings.AssignNames(databaseName);

            var sql = GenerateCreateDbSql(databaseName, settings);

            using (var connection = OpenSqlConnection(context, connectionString))
            {
                context.Log.Debug($"Executing SQL : {sql}");

                var command = CreateSqlCommand(sql, connection);

                command.ExecuteNonQuery();
                context.Log.Information($"Database {databaseName} is created if it was not there");
            }
        }
Exemple #7
0
 internal static void DropAndCreateDatabase(ICakeContext context, string connectionString, string databaseName, CreateDatabaseSettings settings)
 {
     Initializer.InitializeNativeSearchPath();
     DropDatabase(context, connectionString, databaseName);
     CreateDatabase(context, connectionString, databaseName, settings);
 }