diff options
Diffstat (limited to 'schema/custom/database.hxx')
-rw-r--r-- | schema/custom/database.hxx | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/schema/custom/database.hxx b/schema/custom/database.hxx index 932e6c4..82441b7 100644 --- a/schema/custom/database.hxx +++ b/schema/custom/database.hxx @@ -1,4 +1,4 @@ -// file : schema/custom/database.hxx +// file : template/database.hxx // author : Boris Kolpackov <boris@codesynthesis.com> // copyright : not copyrighted - public domain @@ -20,6 +20,8 @@ # include <odb/mysql/database.hxx> #elif defined(DATABASE_SQLITE) # include <odb/sqlite/database.hxx> +#elif defined(DATABASE_PGSQL) +# include <odb/pgsql/database.hxx> #endif inline std::auto_ptr<odb::database> @@ -37,6 +39,8 @@ create_database (int& argc, char* argv[]) odb::mysql::database::print_usage (cerr); #elif defined(DATABASE_SQLITE) odb::sqlite::database::print_usage (cerr); +#elif defined(DATABASE_PGSQL) + odb::pgsql::database::print_usage (cerr); #endif exit (0); @@ -48,6 +52,16 @@ create_database (int& argc, char* argv[]) auto_ptr<database> db ( new odb::sqlite::database ( argc, argv, false, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE)); + + // Create the database schema. + // + { + transaction t (db->begin ()); + schema_catalog::create_schema (*db); + t.commit (); + } +#elif defined(DATABASE_PGSQL) + auto_ptr<database> db (new odb::pgsql::database (argc, argv)); #endif return db; |