public FindMigrationVersions()
 {
     Options = new MigrationScriptOptions();
 }
        public MigrationVersion Create(TextReader reader, string filename, MigrationScriptOptions options, string defaultSchema = "default")
        {
            options.Validate();

            Match match = options.VersionFilenamePattern.Match(Path.GetFileName(filename));

            if (!match.Success)
            {
                throw new ArgumentException("Filename does not match migration version pattern");
            }

            string version = GetVersion(match);
            string schema = GetSchema(match, defaultSchema);

            MigrationVersionScriptMetadata metadata;

            string scriptContents = ParseScriptContents(reader, out metadata);

            string checksum = GenerateChecksum(scriptContents);

            long numericVersion = (options.VersionStrategy.SupportsNumericVersion)
                ? options.VersionStrategy.GetNumericVersion(version)
                : 0L;

            return new MigrationVersion(schema, version, numericVersion, metadata.Description, metadata.SkipCondition, scriptContents, checksum);
        }
 public GenerateMigrationScript()
 {
     MigrationScriptOptions = new MigrationScriptOptions();
     ScriptGenerationOptions = new ScriptGenerationOptions();
 }
 public bool CanCreate(string filename, MigrationScriptOptions options)
 {
     return options.VersionFilenamePattern.IsMatch(Path.GetFileName(filename));
 }