/// <summary> ///by current connection string /// </summary> /// <param name="databaseDirectory"></param> /// <returns></returns> public override bool CreateDatabase(string databaseName, string databaseDirectory = null) { if (databaseDirectory != null) { if (!FileHelper.IsExistDirectory(databaseDirectory)) { FileHelper.CreateDirectory(databaseDirectory); } } var oldDatabaseName = this.Context.Ado.Connection.Database; var connection = this.Context.CurrentConnectionConfig.ConnectionString; connection = connection.Replace(oldDatabaseName, "postgres"); var newDb = new SqlDbLiteClient(new ConnectionConfig() { DbType = this.Context.CurrentConnectionConfig.DbType, IsAutoCloseConnection = true, ConnectionString = connection }); if (!GetDataBaseList(newDb).Any(it => it.Equals(databaseName, StringComparison.CurrentCultureIgnoreCase))) { newDb.Ado.ExecuteCommand(string.Format(CreateDataBaseSql, this.SqlBuilder.SqlTranslationLeft + databaseName + this.SqlBuilder.SqlTranslationRight, databaseDirectory)); } return(true); }
/// <summary> ///by current connection string /// </summary> /// <param name="databaseDirectory"></param> /// <returns></returns> public override bool CreateDatabase(string databaseName, string databaseDirectory = null) { if (databaseDirectory != null) { if (!FileHelper.IsExistDirectory(databaseDirectory)) { FileHelper.CreateDirectory(databaseDirectory); } } var oldDatabaseName = this.Context.Ado.Connection.Database; var connection = this.Context.CurrentConnectionConfig.ConnectionString; connection = connection.Replace(oldDatabaseName, "master"); var newDb = new SqlDbLiteClient(new ConnectionConfig() { DbType = this.Context.CurrentConnectionConfig.DbType, IsAutoCloseConnection = true, ConnectionString = connection }); if (!GetDataBaseList(newDb).Any(it => it.Equals(databaseName, StringComparison.CurrentCultureIgnoreCase))) { var sql = CreateDataBaseSql; if (databaseDirectory.HasValue()) { sql += @"on primary ( name = N'{0}', filename = N'{1}\{0}.mdf', size = 10mb, maxsize = 100mb, filegrowth = 1mb ), ( name = N'{0}_ndf', filename = N'{1}\{0}.ndf', size = 10mb, maxsize = 100mb, filegrowth = 10 % ) log on ( name = N'{0}_log', filename = N'{1}\{0}.ldf', size = 100mb, maxsize = 1gb, filegrowth = 10mb ); "; } newDb.Ado.ExecuteCommand(string.Format(sql, databaseName, databaseDirectory)); } return(true); }
public virtual List <string> GetDataBaseList(SqlDbLiteClient db) { return(db.Ado.SqlQuery <string>(this.GetDataBaseSql)); }