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}