main
 1using gorilla.migrations.data;
 2using gorilla.migrations.io;
 3using gorilla.migrations.utility;
 4
 5namespace gorilla.migrations
 6{
 7    public class RunMigrationsCommand : ConsoleCommand
 8    {
 9        FileSystem file_system;
10        DatabaseGatewayFactory gateway_factory;
11
12        public RunMigrationsCommand(FileSystem file_system, DatabaseGatewayFactory gateway_factory)
13        {
14            this.file_system = file_system;
15            this.gateway_factory = gateway_factory;
16        }
17
18        public void run_against(ConsoleArguments arguments)
19        {
20            System.Console.Out.WriteLine("Running migrations...");
21            var gateway = gateway_factory.gateway_to(arguments.parse_for("connection_string"), arguments.parse_for("data_provider"));
22            file_system
23                .all_sql_files_from(arguments.parse_for("migrations_dir"))
24                .each(x => gateway.run(x));
25        }
26
27        public bool can_handle(ConsoleArguments arguments)
28        {
29            return arguments.contains("migrations_dir")
30                   && arguments.contains("connection_string")
31                   && arguments.contains("data_provider");
32        }
33    }
34}