diff --git a/superset/key_value/models.py b/superset/key_value/models.py index 33e749ca364e1..f846d9039d4e0 100644 --- a/superset/key_value/models.py +++ b/superset/key_value/models.py @@ -28,7 +28,7 @@ class KeyValueEntry(Model, AuditMixinNullable, ImportExportMixin): __tablename__ = "key_value" id = Column(Integer, primary_key=True) resource = Column(String(32), nullable=False) - value = Column(LargeBinary(), nullable=False) + value = Column(LargeBinary(length=2**24 - 1), nullable=False) created_on = Column(DateTime, nullable=True) created_by_fk = Column(Integer, ForeignKey("ab_user.id"), nullable=True) changed_on = Column(DateTime, nullable=True) diff --git a/superset/migrations/versions/2022-06-14_15-28_e09b4ae78457_resize_key_value_blob.py b/superset/migrations/versions/2022-06-14_15-28_e09b4ae78457_resize_key_value_blob.py new file mode 100644 index 0000000000000..34800d4a5d565 --- /dev/null +++ b/superset/migrations/versions/2022-06-14_15-28_e09b4ae78457_resize_key_value_blob.py @@ -0,0 +1,50 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +"""Resize key_value blob + +Revision ID: e09b4ae78457 +Revises: e786798587de +Create Date: 2022-06-14 15:28:42.746349 + +""" + +# revision identifiers, used by Alembic. +revision = "e09b4ae78457" +down_revision = "e786798587de" + +import sqlalchemy as sa +from alembic import op + + +def upgrade(): + with op.batch_alter_table("key_value", schema=None) as batch_op: + batch_op.alter_column( + "value", + existing_nullable=False, + existing_type=sa.LargeBinary(), + type_=sa.LargeBinary(length=2**24 - 1), + ) + + +def downgrade(): + with op.batch_alter_table("key_value", schema=None) as batch_op: + batch_op.alter_column( + "value", + existing_nullable=False, + existing_type=sa.LargeBinary(length=2**24 - 1), + type_=sa.LargeBinary(), + )