|
19 | 19 | from alembic.ddl.base import Column
|
20 | 20 | from alembic.ddl.base import alter_table
|
21 | 21 | from alembic.ddl.base import alter_column
|
| 22 | +from alembic.ddl.base import drop_column |
22 | 23 | from alembic.ddl.base import format_type
|
23 | 24 | from alembic.ddl.base import format_column_name
|
24 | 25 | from .base import IRISDDLCompiler
|
@@ -73,22 +74,6 @@ def compare_server_default(
|
73 | 74 | rendered_inspector_default,
|
74 | 75 | )
|
75 | 76 |
|
76 |
| - def drop_column( |
77 |
| - self, |
78 |
| - table_name: str, |
79 |
| - column: Column, |
80 |
| - schema: Optional[str] = None, |
81 |
| - **kw, |
82 |
| - ) -> None: |
83 |
| - column_name = column.name |
84 |
| - fkeys = self.dialect.get_foreign_keys(self.connection, table_name, schema) |
85 |
| - fkey = [ |
86 |
| - fkey["name"] for fkey in fkeys if column_name in fkey["constrained_columns"] |
87 |
| - ] |
88 |
| - if len(fkey) == 1: |
89 |
| - self._exec(_ExecDropForeignKey(table_name, fkey[0], schema)) |
90 |
| - super().drop_column(table_name, column, schema, **kw) |
91 |
| - |
92 | 77 | def alter_column(
|
93 | 78 | self,
|
94 | 79 | table_name: str,
|
@@ -192,3 +177,11 @@ def visit_rename_column(element: ColumnName, compiler: IRISDDLCompiler, **kw) ->
|
192 | 177 | alter_column(compiler, element.column_name),
|
193 | 178 | format_column_name(compiler, element.newname),
|
194 | 179 | )
|
| 180 | + |
| 181 | +@compiles(DropColumn, "iris") |
| 182 | +def visit_drop_column(element: DropColumn, compiler: IRISDDLCompiler, **kw) -> str: |
| 183 | + return "%s %s CASCADE" % ( |
| 184 | + alter_table(compiler, element.table_name, element.schema), |
| 185 | + drop_column(compiler, element.column.name, **kw), |
| 186 | + ) |
| 187 | + |
0 commit comments