Skip to content

Modification on slices table will fail if following the history of migration  #548

Description

@axeisghost

We tried to add one more properties of Slices, so it involved the addition of columns in the table of slices. We modified the models.py, views.py and added new version file. However, if run the caravel db grade from the initialization, the migration will fail because in the version file
c3a8f8611885_materializing_permission.py, the migration process will use models.Slice in models.py.

    session = db.Session(bind=bind)

    for slc in session.query(models.Slice).all():
        if slc.datasource:
            slc.perm = slc.datasource.perm
            session.merge(slc)
            session.commit()
    db.session.close()

At this time, the database has not been fully upgraded and some columns in slice that has not been added, so using models.Slice will cause runtime error. This issue has not been found before mainly because there is no commit modifying the table of slices. This version file will affect all the modification on slice tables after this version.

Basically, this migration add the perm column for slices and copy the content perm column of corresponding datasource. In my opinion, it is not necessary to do this modification in migration. The perm column can be leaved as blank and whenever the query result of this column is empty, the perm of datasource will be queryed and used as the perm of certain slice.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions