diff --git a/trytond/sql_db.py b/trytond/sql_db.py index 1308711681..1ee63fd441 100644 --- a/trytond/sql_db.py +++ b/trytond/sql_db.py @@ -378,13 +378,17 @@ class table_handler: column_type = column_type[1] self.cursor.execute('ALTER TABLE "%s" ADD COLUMN "%s" %s' % (self.table_name, column_name, column_type)) - # Populate column with default values: - default = None - if default_fun is not None: - default = default_fun(self.cursor, 0, {}) - self.cursor.execute('UPDATE "' + self.table_name + '" '\ - 'SET "' + column_name + '" = ' + symbol_set[0], - (symbol_set[1](default),)) + + # check if table is non-empty: + self.cursor.execute('SELECT 1 FROM %s limit 1' % self.table_name) + if self.cursor.rowcount: + # Populate column with default values: + default = None + if default_fun is not None: + default = default_fun(self.cursor, 0, {}) + self.cursor.execute('UPDATE "' + self.table_name + '" '\ + 'SET "' + column_name + '" = ' + symbol_set[0], + (symbol_set[1](default),)) self.update_definitions()