superset-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From b...@apache.org
Subject [incubator-superset] branch master updated: Silence error on migration 4736ec66ce19 constraint drop (#5729)
Date Tue, 28 Aug 2018 18:10:25 GMT
This is an automated email from the ASF dual-hosted git repository.

beto pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new f0beb3a  Silence error on migration 4736ec66ce19 constraint drop (#5729)
f0beb3a is described below

commit f0beb3ab80901d0f68290dad2cd543022e116e85
Author: Maxime Beauchemin <maximebeauchemin@gmail.com>
AuthorDate: Tue Aug 28 11:08:47 2018 -0700

    Silence error on migration 4736ec66ce19 constraint drop (#5729)
    
    * Silence error on migration 4736ec66ce19 constraint drop
    
    * typo + lint
---
 superset/migrations/versions/4736ec66ce19_.py | 36 ++++++++++++++++-----------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/superset/migrations/versions/4736ec66ce19_.py b/superset/migrations/versions/4736ec66ce19_.py
index 280132d..4cb7959 100644
--- a/superset/migrations/versions/4736ec66ce19_.py
+++ b/superset/migrations/versions/4736ec66ce19_.py
@@ -7,13 +7,10 @@ Create Date: 2017-10-03 14:37:01.376578
 
 """
 
-# revision identifiers, used by Alembic.
-revision = '4736ec66ce19'
-down_revision = 'f959a6652acd'
+import logging
 
 from alembic import op
 import sqlalchemy as sa
-from sqlalchemy.exc import OperationalError
 
 from superset.utils import (
     generic_find_fk_constraint_name,
@@ -21,6 +18,9 @@ from superset.utils import (
     generic_find_uq_constraint_name,
 )
 
+# revision identifiers, used by Alembic.
+revision = '4736ec66ce19'
+down_revision = 'f959a6652acd'
 
 conv = {
     'fk': 'fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s',
@@ -101,16 +101,24 @@ def upgrade():
 
             batch_op.drop_column('datasource_name')
 
-    # Drop the old more restrictive uniqueness constraint.
-    with op.batch_alter_table('datasources', naming_convention=conv) as batch_op:
-        batch_op.drop_constraint(
-            generic_find_uq_constraint_name(
-                'datasources',
-                {'datasource_name'},
-                insp,
-            ) or 'uq_datasources_datasource_name',
-            type_='unique',
-        )
+    try:
+        # Drop the old more restrictive uniqueness constraint.
+        with op.batch_alter_table('datasources', naming_convention=conv) as batch_op:
+            batch_op.drop_constraint(
+                generic_find_uq_constraint_name(
+                    'datasources',
+                    {'datasource_name'},
+                    insp,
+                ) or 'uq_datasources_datasource_name',
+                type_='unique',
+            )
+    except Exception as e:
+        logging.warning(
+            'Constraint drop failed, you may want to do this '
+            'manually on your database. For context, this is a known '
+            'issue around undeterministic contraint names on Postgres '
+            'and perhaps more databases through SQLAlchemy.')
+        logging.exception(e)
 
 
 def downgrade():


Mime
View raw message