From 6cd8b9f561b912f264ba4f723845935c40a3cb95 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 21 Jun 2013 10:39:59 +0200 Subject: Add support for running tests in dynamic multi-database mode Only possible in the development build system at this stage. --- common/schema/embedded/order/driver.cxx | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'common/schema/embedded/order/driver.cxx') diff --git a/common/schema/embedded/order/driver.cxx b/common/schema/embedded/order/driver.cxx index 685693d..0545442 100644 --- a/common/schema/embedded/order/driver.cxx +++ b/common/schema/embedded/order/driver.cxx @@ -13,7 +13,6 @@ #include #include -#include // DATABASE_XXX #include #include "test1.hxx" @@ -31,6 +30,7 @@ main (int argc, char* argv[]) try { auto_ptr db (create_database (argc, argv, false)); + odb::database_id db_id (db->id ()); // Create the database schema. // @@ -41,21 +41,19 @@ main (int argc, char* argv[]) // For MySQL we can actually create the tables in any order. It is // dropping them that's the problem (there is no IF EXISTS). // -#if defined(DATABASE_MYSQL) - c->execute ("SET FOREIGN_KEY_CHECKS=0"); -#elif defined(DATABASE_SQLITE) - c->execute ("PRAGMA foreign_keys=OFF"); -#endif + if (db_id == odb::id_mysql) + c->execute ("SET FOREIGN_KEY_CHECKS=0"); + else if (db_id == odb::id_sqlite) + c->execute ("PRAGMA foreign_keys=OFF"); transaction t (c->begin ()); schema_catalog::create_schema (*db); t.commit (); -#if defined(DATABASE_MYSQL) - c->execute ("SET FOREIGN_KEY_CHECKS=1"); -#elif defined(DATABASE_SQLITE) - c->execute ("PRAGMA foreign_keys=ON"); -#endif + if (db_id == odb::id_mysql) + c->execute ("SET FOREIGN_KEY_CHECKS=1"); + else if (db_id == odb::id_sqlite) + c->execute ("PRAGMA foreign_keys=ON"); } } catch (const odb::exception& e) -- cgit v1.1