From 534c5958af6104aea60a9fcb0d823a5c3cfed1bc Mon Sep 17 00:00:00 2001
From: Boris Kolpackov <boris@codesynthesis.com>
Date: Fri, 25 Mar 2011 13:09:06 +0200
Subject: SQLite support

---
 relationship/database.hxx | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

(limited to 'relationship')

diff --git a/relationship/database.hxx b/relationship/database.hxx
index 8958831..3ad6394 100644
--- a/relationship/database.hxx
+++ b/relationship/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
-- 
cgit v1.1