From a4f25daf17392c9c4b90de60b9d777290706f667 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 8 Apr 2013 11:13:51 +0200 Subject: Generate add/drop foreign key migration statements Also add the --fkeys-deferrable-mode option. General schemas generation rework. --- odb/relational/model.hxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'odb/relational/model.hxx') diff --git a/odb/relational/model.hxx b/odb/relational/model.hxx index 4c4bba6..44f01c9 100644 --- a/odb/relational/model.hxx +++ b/odb/relational/model.hxx @@ -228,14 +228,16 @@ namespace relational string id (id_prefix_ + (key_prefix_.empty () ? m.name () : key_prefix_)); - bool deferred (m.get ("deferred", true)); + deferrable def ( + m.get ("deferrable", + options.fkeys_deferrable_mode ()[db])); + foreign_key::action_type on_delete ( m.get ( "on-delete", foreign_key::no_action)); foreign_key& fk ( - model_.new_node ( - id, table_name (c), deferred, on_delete)); + model_.new_node (id, table_name (c), def, on_delete)); fk.set ("cxx-location", m.location ()); @@ -522,7 +524,7 @@ namespace relational model_.new_node ( id + ".id", table_name (*context::top_object), - false, // immediate + sema_rel::deferrable::not_deferrable, sema_rel::foreign_key::cascade)); fk.set ("cxx-location", m.location ()); model_.new_edge ( -- cgit v1.1