diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-03-25 13:09:06 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-03-25 13:09:06 +0200 |
commit | 534c5958af6104aea60a9fcb0d823a5c3cfed1bc (patch) | |
tree | c2488c68b31a3b72526a7db017d4997cdb93f91f /mapping/database.hxx | |
parent | 0bea9feb8e97b0257b801f34322db72a01373468 (diff) |
SQLite support
Diffstat (limited to 'mapping/database.hxx')
-rw-r--r-- | mapping/database.hxx | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/mapping/database.hxx b/mapping/database.hxx index 704f691..3bb4b62 100644 --- a/mapping/database.hxx +++ b/mapping/database.hxx @@ -18,6 +18,9 @@ #if defined(DATABASE_MYSQL) # include <odb/mysql/database.hxx> +#elif defined(DATABASE_SQLITE) +# include <odb/schema-catalog.hxx> +# include <odb/sqlite/database.hxx> #endif inline std::auto_ptr<odb::database> @@ -33,14 +36,30 @@ create_database (int& argc, char* argv[]) #if defined(DATABASE_MYSQL) odb::mysql::database::print_usage (cerr); +#elif defined(DATABASE_SQLITE) + odb::sqlite::database::print_usage (cerr); #endif exit (0); } #if defined(DATABASE_MYSQL) - return auto_ptr<database> (new odb::mysql::database (argc, argv)); + auto_ptr<database> db (new odb::mysql::database (argc, argv)); +#elif defined(DATABASE_SQLITE) + 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 (); + } #endif + + return db; } #endif // DATABASE_HXX |