FileInfo[] GetCreateDbFiles() { if (DbDirectory == null) { LoadMetaDirectory(); } var potentialSources = new List <FileInfo>(); var tableScripts = DbDirectory.GetSubDirectory("Tables").GetFilesOrEmpty("*.sql"); // Create tables: potentialSources.Add(DbDirectory.GetFile("@Create.Database.sql")); potentialSources.AddRange(tableScripts.Except(x => x.Name.ToLower().EndsWithAny(".fk.sql", ".data.sql"))); // Insert data: potentialSources.Add(DbDirectory.GetFile("@Create.Database.Data.sql")); potentialSources.AddRange(tableScripts.Where(x => x.Name.ToLower().EndsWith(".data.sql"))); potentialSources.Add(DbDirectory.GetFile("Customize.Database.sql")); // Add foreign keys potentialSources.AddRange(tableScripts.Where(x => x.Name.ToLower().EndsWith(".fk.sql"))); var sources = potentialSources.Where(f => f.Exists()).ToArray(); if (sources.None()) { throw new Exception("No SQL creation script file was found. I checked:\r\n" + potentialSources.ToLinesString()); } return(sources); }