From e783a1120b174bac40697000d218796ddf421dfe Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 22 Jun 2017 15:55:34 +0200 Subject: Handle ON DELETE and DEFERRABLE in special SQLite migration code --- odb/relational/sqlite/schema.cxx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/odb/relational/sqlite/schema.cxx b/odb/relational/sqlite/schema.cxx index 649f8e0..6d1885b 100644 --- a/odb/relational/sqlite/schema.cxx +++ b/odb/relational/sqlite/schema.cxx @@ -187,6 +187,21 @@ namespace relational os << " CONSTRAINT " << quote_id (afk->name ()) << " REFERENCES " << quote_id (afk->referenced_table ().uname ()) << " (" << quote_id (afk->referenced_columns ()[0]) << ")"; + + bool del (afk->on_delete () != sema_rel::foreign_key::no_action); + bool def (!afk->not_deferrable ()); + + if (del || def) + { + instance cfk (*this); + + if (del) + cfk->on_delete (afk->on_delete ()); + + if (def) + cfk->deferrable (afk->deferrable ()); + } + afk->set ("sqlite-fk-defined", true); // Mark it as defined. } -- cgit v1.1