summaryrefslogtreecommitdiff
path: root/odb/relational/schema.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-04-04 09:47:32 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-04-10 18:46:44 +0200
commit6d4b471afd63780b8a8a6c2d3fb8cc529ab5b15d (patch)
treed4cf0158f1b2ac03736b662003dbd11b556babef /odb/relational/schema.cxx
parentb0391e168b489811708ca7ba5f71a0eb67b46ffe (diff)
Generate add/drop index migration statements
Diffstat (limited to 'odb/relational/schema.cxx')
-rw-r--r--odb/relational/schema.cxx18
1 files changed, 14 insertions, 4 deletions
diff --git a/odb/relational/schema.cxx b/odb/relational/schema.cxx
index e764790..56fb7c0 100644
--- a/odb/relational/schema.cxx
+++ b/odb/relational/schema.cxx
@@ -96,11 +96,14 @@ namespace relational
schema_format f (schema_format::sql);
- instance<migrate_pre_changeset> changeset (*em, emos, f);
+ instance<changeset_pre> changeset (*em, emos, f);
instance<create_table> ctable (*em, emos, f);
+ instance<alter_table_pre> atable (*em, emos, f);
trav_rel::qnames names;
- changeset >> names >> ctable;
+ changeset >> names;
+ names >> ctable;
+ names >> atable;
// Pass 1 and 2.
//
@@ -108,6 +111,7 @@ namespace relational
{
changeset->pass (pass);
ctable->pass (pass);
+ atable->pass (pass);
changeset->traverse (cs);
}
@@ -122,11 +126,16 @@ namespace relational
schema_format f (schema_format::sql);
- instance<migrate_post_changeset> changeset (*em, emos, f);
+ instance<changeset_post> changeset (*em, emos, f);
instance<drop_table> dtable (*em, emos, f);
+ instance<alter_table_post> altable (*em, emos, f);
+ trav_rel::add_table adtable; // Override.
trav_rel::qnames names;
- changeset >> names >> dtable;
+ changeset >> names;
+ names >> dtable;
+ names >> altable;
+ names >> adtable;
// Pass 1 and 2.
//
@@ -134,6 +143,7 @@ namespace relational
{
changeset->pass (pass);
dtable->pass (pass);
+ altable->pass (pass);
changeset->traverse (cs);
}