public void UpdateExistingDatabase(SchemaDefinition definition)
        {
            CheckDefinitionIsValid(definition);

            var schemaUpdate = new SchemaUpdate(definition.Configuration);
            if (definition.FileDefinition != null && !string.IsNullOrWhiteSpace(definition.FileDefinition.FileName))
            {
                //output the sql to create the db to a file.
                string filename = Path.Combine(string.IsNullOrWhiteSpace(definition.FileDefinition.OutputFolder) ? "" : definition.FileDefinition.OutputFolder, definition.FileDefinition.FileName);

                Action<string> updateExport = x =>
                {
                    using (var file = new FileStream(filename, FileMode.Append, FileAccess.Write))
                    using (var sw = new StreamWriter(file))
                    {
                        sw.Write(x);
                        sw.Close();
                    }
                };

                schemaUpdate.Execute(updateExport, true);
            }
            else
            {
                schemaUpdate.Execute(false, true);
            }
        }
 private static void CheckDefinitionIsValid(SchemaDefinition definition)
 {
     if (definition == null || definition.Configuration == null)
     {
         throw new ArgumentNullException();
     }
 }
        public void CreateDatabase(SchemaDefinition definition)
        {
            CheckDefinitionIsValid(definition);

            var schemaExport = new SchemaExport(definition.Configuration);
            if (definition.FileDefinition != null && !string.IsNullOrWhiteSpace(definition.FileDefinition.FileName))
            {
                //output the sql to create the db to a file.
                string filename = Path.Combine(string.IsNullOrWhiteSpace(definition.FileDefinition.OutputFolder) ? "" : definition.FileDefinition.OutputFolder, definition.FileDefinition.FileName);
                schemaExport = schemaExport.SetOutputFile(filename);
            }

            if (definition.Session == null)
            {
                schemaExport.Execute(definition.ShowSql, true, false);
            }
            else
            {
                schemaExport.Execute(definition.ShowSql, true, false, definition.Session.Connection, null);
            }
        }