Support for adding a column to the beginning of a table

This commit is contained in:
meanmail 2021-03-03 21:04:54 +07:00
parent 7c90c1e4c3
commit e14de715f7
No known key found for this signature in database
GPG Key ID: A4526DCF39E67886

View File

@ -83,10 +83,12 @@ class AlterTable(ModelOperation):
is_regular_field = not (field.materialized or field.alias) is_regular_field = not (field.materialized or field.alias)
if name not in table_fields: if name not in table_fields:
logger.info(' Add column %s', name) logger.info(' Add column %s', name)
assert prev_name, 'Cannot add a column to the beginning of the table'
cmd = 'ADD COLUMN %s %s' % (name, field.get_sql(db=database)) cmd = 'ADD COLUMN %s %s' % (name, field.get_sql(db=database))
if is_regular_field: if is_regular_field:
cmd += ' AFTER %s' % prev_name if prev_name is not None:
cmd += ' AFTER %s' % prev_name
else:
cmd += ' FIRST'
self._alter_table(database, cmd) self._alter_table(database, cmd)
if is_regular_field: if is_regular_field: