From 4a0bc28b09c3c92f1808391ce7329f452806eb94 Mon Sep 17 00:00:00 2001 From: mdipierro Date: Sun, 16 Jun 2013 03:26:46 -0500 Subject: [PATCH] no references in archive tables --- VERSION | 2 +- gluon/dal.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/VERSION b/VERSION index 96bb44ee..a22f82f8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.5.1-stable+timestamp.2013.06.16.03.18.21 +Version 2.5.1-stable+timestamp.2013.06.16.03.25.54 diff --git a/gluon/dal.py b/gluon/dal.py index 6f9e95e8..a8d95c96 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -8306,11 +8306,14 @@ class Table(object): if archive_name in archive_db.tables(): return # do not try define the archive if already exists fieldnames = self.fields() - field_type = self if archive_db is self._db else 'bigint' + same_db = archive_db is self._db + field_type = self if same_db else 'bigint' + clones = [] + for field in self: + clones.append(field.clone( + unique=False, type=field.type if same_db else 'bigint')) archive_db.define_table( - archive_name, - Field(current_record,field_type), - *[field.clone(unique=False) for field in self]) + archive_name, Field(current_record,field_type), *clones) self._before_update.append( lambda qset,fs,db=archive_db,an=archive_name,cn=current_record: archive_record(qset,fs,db[an],cn))