From 08a47c70ad517b80b72914d47d547463f576bcd3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 24 Oct 2011 16:32:51 +0200 Subject: Generate database schema from database model instead of C++ model We now first create the so-called database model from C++ model and then use that to generate the database schema. The new approach also adds more general support for primary/foreign keys, including multi- column keys. Finally, for MySQL we now generate out-of-line foreign key definitions. Because MySQL does not support deferred constraints checking, deferred foreign keys are written commented out, for documentation. --- odb/relational/context.hxx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'odb/relational/context.hxx') diff --git a/odb/relational/context.hxx b/odb/relational/context.hxx index cd2bce5..96e8954 100644 --- a/odb/relational/context.hxx +++ b/odb/relational/context.hxx @@ -8,8 +8,14 @@ #include +#include +#include + namespace relational { + namespace sema_rel = semantics::relational; + namespace trav_rel = traversal::relational; + enum statement_kind { statement_select, @@ -129,7 +135,7 @@ namespace relational struct data; typedef context base_context; - context (data*); + context (data*, sema_rel::model*); private: static context* current_; @@ -139,15 +145,14 @@ namespace relational { data (std::ostream& os): root_context::data (os) {} - bool generate_grow_; - bool need_alias_as_; - string bind_vector_; string truncated_vector_; }; data* data_; public: + sema_rel::model* model; + bool generate_grow; bool need_alias_as; -- cgit v1.1