Skip to content

Commit 4e8b119

Browse files
committed
Started introducing support for specifying a default schema for migrations.
1 parent 68b11f4 commit 4e8b119

28 files changed

+68
-56
lines changed

src/Migrator.Console/MigratorConsole.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public class MigratorConsole
3434
string _migrationsAssembly;
3535
string _provider;
3636
bool _trace;
37+
string _defaultSchema;
3738

3839
/// <summary>
3940
/// Builds a new console
@@ -118,7 +119,7 @@ public void Dump()
118119
{
119120
CheckArguments();
120121

121-
var dumper = new SchemaDumper(_provider, _connectionString);
122+
var dumper = new SchemaDumper(_provider, _connectionString, _defaultSchema);
122123

123124
dumper.DumpTo(_dumpTo);
124125
}
@@ -140,6 +141,7 @@ public void PrintUsage()
140141
Console.WriteLine("\t{0} {1}", "migrationAssembly".PadRight(tab), "Path to the assembly containing the migrations");
141142
Console.WriteLine("Options:");
142143
Console.WriteLine("\t-{0}{1}", "version NO".PadRight(tab), "To specific version to migrate the database to");
144+
Console.WriteLine("\t-{0}{1}", "defaultSchema <schema>".PadRight(tab), "To specify the default schema");
143145
Console.WriteLine("\t-{0}{1}", "list".PadRight(tab), "List migrations");
144146
Console.WriteLine("\t-{0}{1}", "trace".PadRight(tab), "Show debug informations");
145147
Console.WriteLine("\t-{0}{1}", "dump FILE".PadRight(tab), "Dump the database schema as migration code");
@@ -161,7 +163,7 @@ Migrator GetMigrator()
161163
{
162164
Assembly asm = Assembly.LoadFrom(_migrationsAssembly);
163165

164-
var migrator = new Migrator(_provider, _connectionString, asm, _trace);
166+
var migrator = new Migrator(_provider, _connectionString, _defaultSchema, asm, _trace);
165167
migrator.args = args;
166168
migrator.DryRun = _dryrun;
167169
return migrator;
@@ -188,6 +190,10 @@ void ParseArguments(string[] argv)
188190
_migrateTo = long.Parse(argv[i + 1]);
189191
i++;
190192
}
193+
else if (argv[i].EndsWith("-defaultSchema"))
194+
{
195+
_defaultSchema = argv[i + 1];
196+
}
191197
else if (argv[i].Equals("-dump"))
192198
{
193199
_dumpTo = argv[i + 1];

src/Migrator.MSBuild/MigrateTask.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ public class Migrate : Task
5555
[Required]
5656
public string Provider { set; get; }
5757

58+
public string DefaultSchema { get; set; }
59+
5860
[Required]
5961
public string ConnectionString { set; get; }
6062

@@ -124,7 +126,7 @@ public override bool Execute()
124126

125127
void Execute(Assembly asm)
126128
{
127-
var mig = new Migrator(Provider, ConnectionString, asm, Trace, new TaskLogger(this));
129+
var mig = new Migrator(Provider, ConnectionString, DefaultSchema, asm, Trace, new TaskLogger(this));
128130
mig.DryRun = DryRun;
129131
if (ScriptChanges)
130132
{

src/Migrator.NAnt/MigrateTask.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ public class MigrateTask : Task
4242
string _scriptFile;
4343
long _to = -1; // To last revision
4444

45+
[TaskAttribute("defaultschema")]
46+
public string DefaultSchema { get; set; }
47+
4548
[TaskAttribute("provider", Required = true)]
4649
public string Provider { set; get; }
4750

@@ -112,7 +115,7 @@ protected override void ExecuteTask()
112115

113116
void Execute(Assembly asm)
114117
{
115-
var mig = new Migrator(Provider, ConnectionString, asm, Trace, new TaskLogger(this));
118+
var mig = new Migrator(Provider, ConnectionString, DefaultSchema, asm, Trace, new TaskLogger(this));
116119
mig.DryRun = DryRun;
117120
if (ScriptChanges)
118121
{

src/Migrator.Providers/Dialect.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,11 @@ public virtual bool IsReservedWord(string reservedWord)
8585
return isReserved;
8686
}
8787

88-
public abstract ITransformationProvider GetTransformationProvider(Dialect dialect, string connectionString);
88+
public abstract ITransformationProvider GetTransformationProvider(Dialect dialect, string connectionString, string defaultSchema);
8989

90-
public ITransformationProvider NewProviderForDialect(string connectionString)
90+
public ITransformationProvider NewProviderForDialect(string connectionString, string defaultSchema)
9191
{
92-
return GetTransformationProvider(this, connectionString);
92+
return GetTransformationProvider(this, connectionString, defaultSchema);
9393
}
9494

9595
/// <summary>

src/Migrator.Providers/Impl/Mysql/MySqlTransformationProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace Migrator.Providers.Mysql
1212
public class MySqlTransformationProvider : TransformationProvider
1313
{
1414
public MySqlTransformationProvider(Dialect dialect, string connectionString)
15-
: base(dialect, connectionString)
15+
: base(dialect, connectionString, null) // we ignore schemas for MySql (schema == database for MySql)
1616
{
1717
_connection = new MySqlConnection(_connectionString);
1818
_connection.ConnectionString = _connectionString;

src/Migrator.Providers/Impl/Mysql/MysqlDialect.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public override string QuoteTemplate
6767
get { return "`{0}`"; }
6868
}
6969

70-
public override ITransformationProvider GetTransformationProvider(Dialect dialect, string connectionString)
70+
public override ITransformationProvider GetTransformationProvider(Dialect dialect, string connectionString, string defaultSchema)
7171
{
7272
return new MySqlTransformationProvider(dialect, connectionString);
7373
}

src/Migrator.Providers/Impl/Oracle/OracleDialect.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ public override bool TableNameNeedsQuote
8989
get { return false; }
9090
}
9191

92-
public override ITransformationProvider GetTransformationProvider(Dialect dialect, string connectionString)
92+
public override ITransformationProvider GetTransformationProvider(Dialect dialect, string connectionString, string defaultSchema)
9393
{
94-
return new OracleTransformationProvider(dialect, connectionString);
94+
return new OracleTransformationProvider(dialect, connectionString, defaultSchema);
9595
}
9696
}
9797
}

src/Migrator.Providers/Impl/Oracle/OracleTransformationProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public class OracleTransformationProvider : TransformationProvider
1313
{
1414
public const string TemporaryColumnName = "TEMPCOL";
1515

16-
public OracleTransformationProvider(Dialect dialect, string connectionString)
17-
: base(dialect, connectionString)
16+
public OracleTransformationProvider(Dialect dialect, string connectionString, string defaultSchema)
17+
: base(dialect, connectionString, defaultSchema)
1818
{
1919
_connection = new OracleConnection();
2020
_connection.ConnectionString = _connectionString;

src/Migrator.Providers/Impl/PostgreSQL/PostgreSQLDialect.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ public override bool IdentityNeedsType
8989
get { return false; }
9090
}
9191

92-
public override ITransformationProvider GetTransformationProvider(Dialect dialect, string connectionString)
92+
public override ITransformationProvider GetTransformationProvider(Dialect dialect, string connectionString, string defaultSchema)
9393
{
94-
return new PostgreSQLTransformationProvider(dialect, connectionString);
94+
return new PostgreSQLTransformationProvider(dialect, connectionString, defaultSchema);
9595
}
9696
}
9797
}

src/Migrator.Providers/Impl/PostgreSQL/PostgreSQLTransformationProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ namespace Migrator.Providers.PostgreSQL
2424
/// </summary>
2525
public class PostgreSQLTransformationProvider : TransformationProvider
2626
{
27-
public PostgreSQLTransformationProvider(Dialect dialect, string connectionString)
28-
: base(dialect, connectionString)
27+
public PostgreSQLTransformationProvider(Dialect dialect, string connectionString, string defaultSchema)
28+
: base(dialect, connectionString, defaultSchema)
2929
{
3030
_connection = new NpgsqlConnection();
3131
_connection.ConnectionString = _connectionString;

0 commit comments

Comments
 (0)