diff options
author | emil.kroymann <unknown> | 2010-01-07 20:10:47 +0100 |
---|---|---|
committer | emil.kroymann <unknown> | 2010-01-07 20:10:47 +0100 |
commit | 7912af18ed473e296ccf40a52eabc81b978c8f1b (patch) | |
tree | 1c1c819e8af00f871afbc08b6cfa939366cd8564 /migrate/changeset | |
parent | b7685663fc8cc7cf34dba975e141b64e4940a7d2 (diff) | |
download | sqalchemy-migrate-7912af18ed473e296ccf40a52eabc81b978c8f1b.tar.gz |
apply Emil Kroymann's patch for Issue 75
Diffstat (limited to 'migrate/changeset')
-rw-r--r-- | migrate/changeset/databases/mysql.py | 9 | ||||
-rw-r--r-- | migrate/changeset/schema.py | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/migrate/changeset/databases/mysql.py b/migrate/changeset/databases/mysql.py index 6655a42..f32ea5f 100644 --- a/migrate/changeset/databases/mysql.py +++ b/migrate/changeset/databases/mysql.py @@ -4,6 +4,7 @@ from migrate.changeset import ansisql, exceptions, SQLA_06 from sqlalchemy.databases import mysql as sa_base +from sqlalchemy import types as sqltypes if not SQLA_06: MySQLSchemaGenerator = sa_base.MySQLSchemaGenerator @@ -23,6 +24,14 @@ class MySQLSchemaChanger(MySQLSchemaGenerator, ansisql.ANSISchemaChanger): def visit_column(self, delta): table = delta.table colspec = self.get_column_specification(delta.result_column) + if delta.result_column.autoincrement: + first = [c for c in table.primary_key.columns + if (c.autoincrement and + isinstance(c.type, sqltypes.Integer) and + not c.foreign_keys)].pop(0) + + if first.name == delta.current_name: + colspec += " AUTO_INCREMENT" old_col_name = self.preparer.quote(delta.current_name, table.quote) self.start_alter_table(table) diff --git a/migrate/changeset/schema.py b/migrate/changeset/schema.py index 9af0f7d..d182825 100644 --- a/migrate/changeset/schema.py +++ b/migrate/changeset/schema.py @@ -177,7 +177,7 @@ class ColumnDelta(DictMixin, sqlalchemy.schema.SchemaItem): # Column attributes that can be altered diff_keys = ('name', 'type', 'primary_key', 'nullable', - 'server_onupdate', 'server_default') + 'server_onupdate', 'server_default', 'autoincrement') diffs = dict() __visit_name__ = 'column' |