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

docker compose build leads to relation "report_schedule" does not exist error #31586

Open
3 tasks done
dkjackyu opened this issue Dec 20, 2024 · 1 comment
Open
3 tasks done
Assignees
Labels
install:docker Installation - docker container

Comments

@dkjackyu
Copy link

Bug description

Setting up a development environment following https://superset.apache.org/docs/contributing/development#docker-compose-recommended does not work.

What's already in place?

OS

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy

Docker

Client: Docker Engine - Community
Version: 27.4.1
API version: 1.47
Go version: go1.22.10
Git commit: b9d17ea
Built: Tue Dec 17 15:45:42 2024
OS/Arch: linux/amd64
Context: default

Server: Docker Engine - Community
Engine:
Version: 27.4.1
API version: 1.47 (minimum version 1.24)
Go version: go1.22.10
Git commit: c710b88
Built: Tue Dec 17 15:45:42 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.24
GitCommit: 88bf19b2105c8b17560993bee28a01ddc2f97182
runc:
Version: 1.2.2
GitCommit: v1.2.2-0-g7cb3632
docker-init:
Version: 0.19.0
GitCommit: de40ad0

Superset commit

531f1b6aa (HEAD) chore(gha): bump ubuntu to latest fresh release (#31390)
723ef591a fix: add various recent issues on master CI (#31561)

Steps to reproduce the error

sudo docker compose up --build

Observed error

superset_worker       |   File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context
superset_worker       |     self.dialect.do_execute(
superset_worker       |   File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
superset_worker       |     cursor.execute(statement, parameters)
superset_worker       | sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "report_schedule" does not exist
superset_worker       | LINE 2: FROM report_schedule 
superset_worker       |              ^
superset_worker       | 
superset_worker       | [SQL: SELECT report_schedule.created_on AS report_schedule_created_on, report_schedule.changed_on AS report_schedule_changed_on, report_schedule.extra_json AS report_schedule_extra_json, report_schedule.id AS report_schedule_id, report_schedule.type AS report_schedule_type, report_schedule.name AS report_schedule_name, report_schedule.description AS report_schedule_description, report_schedule.context_markdown AS report_schedule_context_markdown, report_schedule.active AS report_schedule_active, report_schedule.crontab AS report_schedule_crontab, report_schedule.creation_method AS report_schedule_creation_method, report_schedule.timezone AS report_schedule_timezone, report_schedule.report_format AS report_schedule_report_format, report_schedule.sql AS report_schedule_sql, report_schedule.chart_id AS report_schedule_chart_id, report_schedule.dashboard_id AS report_schedule_dashboard_id, report_schedule.database_id AS report_schedule_database_id, report_schedule.last_eval_dttm AS report_schedule_last_eval_dttm, report_schedule.last_state AS report_schedule_last_state, report_schedule.last_value AS report_schedule_last_value, report_schedule.last_value_row_json AS report_schedule_last_value_row_json, report_schedule.validator_type AS report_schedule_validator_type, report_schedule.validator_config_json AS report_schedule_validator_config_json, report_schedule.log_retention AS report_schedule_log_retention, report_schedule.grace_period AS report_schedule_grace_period, report_schedule.working_timeout AS report_schedule_working_timeout, report_schedule.force_screenshot AS report_schedule_force_screenshot, report_schedule.custom_width AS report_schedule_custom_width, report_schedule.custom_height AS report_schedule_custom_height, report_schedule.email_subject AS report_schedule_email_subject, report_schedule.created_by_fk AS report_schedule_created_by_fk, report_schedule.changed_by_fk AS report_schedule_changed_by_fk 
superset_worker       | FROM report_schedule 
superset_worker       | WHERE report_schedule.active IS true]
superset_worker       | (Background on this error at: https://sqlalche.me/e/14/f405)
superset_app          | 2024-12-20 17:26:21,834:DEBUG:superset.stats_logger:[stats_logger] (incr) health

What appears to solve the problem?

#21160 (comment)

i.e. Instead of

sudo docker compose up --build

, do

sudo docker compose run --rm superset superset db upgrade
sudo docker compose up --build

Questions

  1. Can you reproduce the error?
  2. If so, why does it occur? Why does the found solution fix it?
  3. Does the codebase need to be updated somewhere, or does the documentation need to be updated?

Screenshots/recordings

Logging in with username = admin and password = admin:

image

Superset version

master / latest-dev

Python version

3.10

Node version

16

Browser

Chrome

Additional context

No response

Checklist

  • I have searched Superset docs and Slack and didn't find a solution to my problem.
  • I have searched the GitHub issue tracker and didn't find a similar bug report.
  • I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.
@dosubot dosubot bot added the install:docker Installation - docker container label Dec 20, 2024
Copy link

dosubot bot commented Dec 20, 2024

Hey @dkjackyu! I'm here to help you out with any bugs, questions, or contributions you have in mind. Let's squash those bugs and get things sorted! 🤖

I found a similar closed issue that addresses the relation "report_schedule" does not exist error. The suggested solution is to run the database migrations before starting the application. This involves executing the command sudo docker compose run --rm superset superset db upgrade before sudo docker compose up --build. This step ensures that the database schema is up-to-date, which resolves the missing table issue [1].

The error occurs because the database schema is not aligned with the application's expected schema, which includes the report_schedule table. Running superset db upgrade applies the necessary database migrations, including the creation of the report_schedule table and related tables, thus fixing the issue [2].

Regarding updates to the codebase or documentation, the current documentation already emphasizes the importance of running superset db upgrade before starting the application. It seems that the documentation is correct, but ensuring that users follow these steps is crucial for a smooth setup experience.

To continue talking to Dosu, mention @dosu.


Help Dosu learn! Give it feedback: Great Response | Irrelevant Answer | Incorrect Sources | Too Verbose | Hallucination | Other

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
install:docker Installation - docker container
Projects
None yet
Development

No branches or pull requests

2 participants