Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
axeisghost opened this issue Jun 1, 2016 · 2 comments

Comments

@axeisghost
Copy link
Contributor

axeisghost commented Jun 1, 2016

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.

@mistercrunch
Copy link
Member

We need perm in Slice for good reasons, it helps generating custom list of Slices and Dashboards on the fly based on security settings.
https://github.com/airbnb/caravel/blob/master/caravel/views.py#L91

The query is already pretty complicated with perm in Slice and would probably need to be a two phase query if it wasn't in there which is bad.

I don't get what the problem is with this migration script.

@axeisghost
Copy link
Contributor Author

axeisghost commented Jun 3, 2016

Thanks. I understand that perm is necessary. The migration of the version will use models.Slice class to do the query for the perm in the migration process but at that time the database is not fully migrated yet. If any migration after this one add a new column for slices, the models.Slice class will declare the new column too. Before reaching the new column migration, using models.Slice will cause the SQLAlchemy fail to bind that new column and pop up error "no such column"

zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this issue Nov 17, 2021
* feat(plugin-chart-choropleth-map): scaffold and load map (apache#527)

* feat: add package

* feat: storybook working

* feat: load usa and world map

* refactor: clean up

* fix: remove test data

* refactor: utilize dynamic import

* build: remove unused dependencies

* fix: address pr comments

* fix: comment

* feat(plugin-chart-choropleth-map): add more country maps (apache#529)

* feat(plugin-chart-choropleth-map): add zooming (apache#528)

* feat: add zooming

* feat: can zoom in and out

* feat: add zoom controls

* refactor: extract controls

* fix: address comments

* feat(plugin-chart-choropleth-map): add encoding (apache#541)

* feat: add encoder

* feat: add encoding

* docs: add categorical

* fix: any

* docs: update storybook

* feat(plugin-chart-choropleth-map): add tooltip (apache#548)

* feat: support tooltip

* feat: support tooltip fields

* fix: default projection

* build: bump dependency

* build: update dependency

* build: mark private
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this issue Nov 24, 2021
* feat(plugin-chart-choropleth-map): scaffold and load map (apache#527)

* feat: add package

* feat: storybook working

* feat: load usa and world map

* refactor: clean up

* fix: remove test data

* refactor: utilize dynamic import

* build: remove unused dependencies

* fix: address pr comments

* fix: comment

* feat(plugin-chart-choropleth-map): add more country maps (apache#529)

* feat(plugin-chart-choropleth-map): add zooming (apache#528)

* feat: add zooming

* feat: can zoom in and out

* feat: add zoom controls

* refactor: extract controls

* fix: address comments

* feat(plugin-chart-choropleth-map): add encoding (apache#541)

* feat: add encoder

* feat: add encoding

* docs: add categorical

* fix: any

* docs: update storybook

* feat(plugin-chart-choropleth-map): add tooltip (apache#548)

* feat: support tooltip

* feat: support tooltip fields

* fix: default projection

* build: bump dependency

* build: update dependency

* build: mark private
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this issue Nov 25, 2021
* feat(plugin-chart-choropleth-map): scaffold and load map (apache#527)

* feat: add package

* feat: storybook working

* feat: load usa and world map

* refactor: clean up

* fix: remove test data

* refactor: utilize dynamic import

* build: remove unused dependencies

* fix: address pr comments

* fix: comment

* feat(plugin-chart-choropleth-map): add more country maps (apache#529)

* feat(plugin-chart-choropleth-map): add zooming (apache#528)

* feat: add zooming

* feat: can zoom in and out

* feat: add zoom controls

* refactor: extract controls

* fix: address comments

* feat(plugin-chart-choropleth-map): add encoding (apache#541)

* feat: add encoder

* feat: add encoding

* docs: add categorical

* fix: any

* docs: update storybook

* feat(plugin-chart-choropleth-map): add tooltip (apache#548)

* feat: support tooltip

* feat: support tooltip fields

* fix: default projection

* build: bump dependency

* build: update dependency

* build: mark private
zhaoyongjie pushed a commit to zhaoyongjie/incubator-superset that referenced this issue Nov 26, 2021
* feat(plugin-chart-choropleth-map): scaffold and load map (apache#527)

* feat: add package

* feat: storybook working

* feat: load usa and world map

* refactor: clean up

* fix: remove test data

* refactor: utilize dynamic import

* build: remove unused dependencies

* fix: address pr comments

* fix: comment

* feat(plugin-chart-choropleth-map): add more country maps (apache#529)

* feat(plugin-chart-choropleth-map): add zooming (apache#528)

* feat: add zooming

* feat: can zoom in and out

* feat: add zoom controls

* refactor: extract controls

* fix: address comments

* feat(plugin-chart-choropleth-map): add encoding (apache#541)

* feat: add encoder

* feat: add encoding

* docs: add categorical

* fix: any

* docs: update storybook

* feat(plugin-chart-choropleth-map): add tooltip (apache#548)

* feat: support tooltip

* feat: support tooltip fields

* fix: default projection

* build: bump dependency

* build: update dependency

* build: mark private
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants