|
@@ -559,8 +559,9 @@ void test_dependency_equality() {
|
|
|
|
|
|
|
|
void test_single_namespace_register() {
|
|
void test_single_namespace_register() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -578,8 +579,9 @@ void test_single_namespace_register() {
|
|
|
|
|
|
|
|
void test_single_namespace_migrate_to_latest() {
|
|
void test_single_namespace_migrate_to_latest() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -592,11 +594,8 @@ void test_single_namespace_migrate_to_latest() {
|
|
|
assert(current == 2);
|
|
assert(current == 2);
|
|
|
|
|
|
|
|
// Verify tables exist
|
|
// Verify tables exist
|
|
|
- var cmd = conn.create_command("SELECT name FROM sqlite_master WHERE type='table' AND name='users'");
|
|
|
|
|
- assert(cmd.execute_query().any());
|
|
|
|
|
-
|
|
|
|
|
- cmd = conn.create_command("SELECT name FROM sqlite_master WHERE type='table' AND name='roles'");
|
|
|
|
|
- assert(cmd.execute_query().any());
|
|
|
|
|
|
|
+ assert(ctx.table_exists("users"));
|
|
|
|
|
+ assert(ctx.table_exists("roles"));
|
|
|
|
|
|
|
|
conn.close();
|
|
conn.close();
|
|
|
} catch (SqlError e) {
|
|
} catch (SqlError e) {
|
|
@@ -607,8 +606,9 @@ void test_single_namespace_migrate_to_latest() {
|
|
|
|
|
|
|
|
void test_single_namespace_get_applied() {
|
|
void test_single_namespace_get_applied() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -638,8 +638,9 @@ void test_single_namespace_get_applied() {
|
|
|
|
|
|
|
|
void test_single_namespace_get_pending() {
|
|
void test_single_namespace_get_pending() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -665,8 +666,9 @@ void test_single_namespace_get_pending() {
|
|
|
|
|
|
|
|
void test_single_namespace_rollback() {
|
|
void test_single_namespace_rollback() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -692,8 +694,9 @@ void test_single_namespace_rollback() {
|
|
|
|
|
|
|
|
void test_single_namespace_get_current_serial() {
|
|
void test_single_namespace_get_current_serial() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -725,8 +728,9 @@ void test_single_namespace_get_current_serial() {
|
|
|
|
|
|
|
|
void test_multi_register_namespaces() {
|
|
void test_multi_register_namespaces() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// Register migrations from multiple namespaces
|
|
// Register migrations from multiple namespaces
|
|
@@ -749,8 +753,9 @@ void test_multi_register_namespaces() {
|
|
|
|
|
|
|
|
void test_multi_migrate_to_latest_all() {
|
|
void test_multi_migrate_to_latest_all() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// Register all migrations
|
|
// Register all migrations
|
|
@@ -771,10 +776,7 @@ void test_multi_migrate_to_latest_all() {
|
|
|
// Verify all tables exist
|
|
// Verify all tables exist
|
|
|
string[] expected_tables = {"users", "roles", "orders", "order_items", "audit_log"};
|
|
string[] expected_tables = {"users", "roles", "orders", "order_items", "audit_log"};
|
|
|
foreach (var table in expected_tables) {
|
|
foreach (var table in expected_tables) {
|
|
|
- var cmd = conn.create_command(
|
|
|
|
|
- "SELECT name FROM sqlite_master WHERE type='table' AND name='%s'".printf(table)
|
|
|
|
|
- );
|
|
|
|
|
- assert(cmd.execute_query().any());
|
|
|
|
|
|
|
+ assert(ctx.table_exists(table));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
conn.close();
|
|
conn.close();
|
|
@@ -785,8 +787,9 @@ void test_multi_migrate_to_latest_all() {
|
|
|
|
|
|
|
|
void test_multi_migrate_specific_namespace() {
|
|
void test_multi_migrate_specific_namespace() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -812,8 +815,9 @@ void test_multi_migrate_specific_namespace() {
|
|
|
|
|
|
|
|
void test_multi_filter_applied_by_namespace() {
|
|
void test_multi_filter_applied_by_namespace() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -849,8 +853,9 @@ void test_multi_filter_applied_by_namespace() {
|
|
|
|
|
|
|
|
void test_multi_filter_pending_by_namespace() {
|
|
void test_multi_filter_pending_by_namespace() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -887,8 +892,9 @@ void test_multi_filter_pending_by_namespace() {
|
|
|
|
|
|
|
|
void test_cross_namespace_dependency() {
|
|
void test_cross_namespace_dependency() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// App V1 depends on "auth" namespace (any migration)
|
|
// App V1 depends on "auth" namespace (any migration)
|
|
@@ -927,8 +933,9 @@ void test_cross_namespace_dependency() {
|
|
|
|
|
|
|
|
void test_cross_namespace_specific_serial() {
|
|
void test_cross_namespace_specific_serial() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// App V2 depends on auth:1 specifically
|
|
// App V2 depends on auth:1 specifically
|
|
@@ -952,8 +959,9 @@ void test_cross_namespace_specific_serial() {
|
|
|
|
|
|
|
|
void test_cross_namespace_multiple_deps() {
|
|
void test_cross_namespace_multiple_deps() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// App V2 has multiple dependencies: auth:1 and app:1
|
|
// App V2 has multiple dependencies: auth:1 and app:1
|
|
@@ -992,8 +1000,9 @@ void test_cross_namespace_multiple_deps() {
|
|
|
|
|
|
|
|
void test_cross_namespace_order() {
|
|
void test_cross_namespace_order() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// Register in random order
|
|
// Register in random order
|
|
@@ -1036,8 +1045,9 @@ void test_cross_namespace_order() {
|
|
|
|
|
|
|
|
void test_cross_namespace_missing_namespace() {
|
|
void test_cross_namespace_missing_namespace() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// Register migration that depends on non-existent namespace
|
|
// Register migration that depends on non-existent namespace
|
|
@@ -1052,8 +1062,9 @@ void test_cross_namespace_missing_namespace() {
|
|
|
|
|
|
|
|
void test_cross_namespace_missing_serial() {
|
|
void test_cross_namespace_missing_serial() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// Register auth:1 and migration that depends on auth:999
|
|
// Register auth:1 and migration that depends on auth:999
|
|
@@ -1073,8 +1084,9 @@ void test_cross_namespace_missing_serial() {
|
|
|
|
|
|
|
|
void test_circular_two_migration() {
|
|
void test_circular_two_migration() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// Circular A depends on B, B depends on A
|
|
// Circular A depends on B, B depends on A
|
|
@@ -1090,8 +1102,9 @@ void test_circular_two_migration() {
|
|
|
|
|
|
|
|
void test_circular_three_migration() {
|
|
void test_circular_three_migration() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// Three-way cycle: A -> B -> C -> A
|
|
// Three-way cycle: A -> B -> C -> A
|
|
@@ -1108,8 +1121,9 @@ void test_circular_three_migration() {
|
|
|
|
|
|
|
|
void test_circular_self_dependency() {
|
|
void test_circular_self_dependency() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// Self-dependency
|
|
// Self-dependency
|
|
@@ -1124,8 +1138,9 @@ void test_circular_self_dependency() {
|
|
|
|
|
|
|
|
void test_circular_error_message() {
|
|
void test_circular_error_message() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Circular_A());
|
|
runner.register_migration(new Test_Circular_A());
|
|
@@ -1147,8 +1162,9 @@ void test_circular_error_message() {
|
|
|
|
|
|
|
|
void test_rollback_to_specific() {
|
|
void test_rollback_to_specific() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -1164,8 +1180,7 @@ void test_rollback_to_specific() {
|
|
|
|
|
|
|
|
// V2 and V3 should be rolled back (tables dropped)
|
|
// V2 and V3 should be rolled back (tables dropped)
|
|
|
// Only users table should exist
|
|
// Only users table should exist
|
|
|
- var cmd = conn.create_command("SELECT name FROM sqlite_master WHERE type='table' AND name='roles'");
|
|
|
|
|
- assert(!cmd.execute_query().any());
|
|
|
|
|
|
|
+ assert(!ctx.table_exists("roles"));
|
|
|
|
|
|
|
|
conn.close();
|
|
conn.close();
|
|
|
} catch (SqlError e) {
|
|
} catch (SqlError e) {
|
|
@@ -1175,8 +1190,9 @@ void test_rollback_to_specific() {
|
|
|
|
|
|
|
|
void test_rollback_last_n() {
|
|
void test_rollback_last_n() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -1197,8 +1213,9 @@ void test_rollback_last_n() {
|
|
|
|
|
|
|
|
void test_rollback_all() {
|
|
void test_rollback_all() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|
|
@@ -1227,8 +1244,9 @@ void test_rollback_all() {
|
|
|
|
|
|
|
|
void test_rollback_across_namespaces() {
|
|
void test_rollback_across_namespaces() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
// Register migrations that will apply in a specific order
|
|
// Register migrations that will apply in a specific order
|
|
@@ -1264,8 +1282,9 @@ void test_rollback_across_namespaces() {
|
|
|
|
|
|
|
|
void test_error_circular_message() {
|
|
void test_error_circular_message() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Circular_A());
|
|
runner.register_migration(new Test_Circular_A());
|
|
@@ -1281,8 +1300,9 @@ void test_error_circular_message() {
|
|
|
|
|
|
|
|
void test_error_unsatisfied_message() {
|
|
void test_error_unsatisfied_message() {
|
|
|
try {
|
|
try {
|
|
|
- var conn = ConnectionFactory.create_and_open("sqlite::memory:");
|
|
|
|
|
- var dialect = new SqliteDialect();
|
|
|
|
|
|
|
+ var ctx = new TestBackendContext();
|
|
|
|
|
+ var conn = ctx.connection;
|
|
|
|
|
+ var dialect = ctx.dialect;
|
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
var runner = new MigrationRunner(conn, dialect);
|
|
|
|
|
|
|
|
runner.register_migration(new Test_Auth_V1());
|
|
runner.register_migration(new Test_Auth_V1());
|