/// <summary> /// Executes the specified script. /// </summary> /// <param name="script">The script to execute.</param> /// <param name="connectionString">The database connection string.</param> public static void ExecuteScripts(Script script, string connectionString) { ScriptSet scripts = new ScriptSet(); scripts.Add(script); ExecuteScripts(scripts, connectionString); }
/// <summary> /// Load a script from the file system. /// </summary> /// <param name="file">The file to load.</param> /// <param name="scripts">The script set to populate.</param> /// <param name="name">The script name.</param> public static void LoadScript(FileInfo file, ScriptSet scripts, string name) { //what we do depends on what type of file we've got switch (file.Extension.ToLower()) { //data case ".data": scripts.Add(new Script(file, ScriptType.TableData, name)); break; //extended table properties case ".ext": RunOptions.Current.Logger.Log("Ignoring extended property file " + file.FullName, OutputLevel.Reads); break; //foreign key constraints case ".fky": scripts.Add(new Script(file, ScriptType.ForeignKey, name)); break; //generic script? case ".sql": switch (Path.GetExtension(Path.GetFileNameWithoutExtension(file.FullName))) { case ".data": scripts.Add(new Script(file, ScriptType.TableData, name)); break; case ".fkey": scripts.Add(new Script(file, ScriptType.ForeignKey, name)); break; case ".function": scripts.Add(new Script(file, ScriptType.UserDefinedFunction, name)); break; case ".pkey": scripts.Add(new Script(file, ScriptType.PrimaryKey, name)); break; case ".proc": scripts.Add(new Script(file, ScriptType.StoredProc, name)); break; case ".table": scripts.Add(new Script(file, ScriptType.Table, name)); break; case ".trigger": scripts.Add(new Script(file, ScriptType.Trigger, name)); break; case ".view": scripts.Add(new Script(file, ScriptType.View, name)); break; default: scripts.Add(new Script(file, ScriptType.Unknown, name)); break; } break; //known files to ignore case ".dbp": //database project case ".log": //log file case ".scc": //source control file case ".vspscc": //source control file RunOptions.Current.Logger.Log("Ignoring non script file " + file.FullName, OutputLevel.Reads); break; //primary key constraints case ".kci": scripts.Add(new Script(file, ScriptType.PrimaryKey, name)); break; //stored procs case ".prc": scripts.Add(new Script(file, ScriptType.StoredProc, name)); break; //table definitions case ".tab": //table definitions scripts.Add(new Script(file, ScriptType.Table, name)); break; //triggers case ".trg": scripts.Add(new Script(file, ScriptType.Trigger, name)); break; //user defined functions case ".udf": scripts.Add(new Script(file, ScriptType.UserDefinedFunction, name)); break; //views case ".viw": scripts.Add(new Script(file, ScriptType.View, name)); break; default: RunOptions.Current.Logger.Log("Ignoring unknown file " + file.FullName, OutputLevel.Reads); break; } }