plane icon indicating copy to clipboard operation
plane copied to clipboard

[bug]: Migrations fail after update to v0.13.2-dev

Open BnAmN opened this issue 2 years ago • 2 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

Current behavior

After the update to v0.13.2-dev the api and beatworker containers fail with the following errors:

(...)
api                    | Operations to perform:
api                    |   Apply all migrations: auth, authtoken, contenttypes, db, django_celery_beat, sessions, taggit, token_blacklist
api                    | Running migrations:
api                    | Traceback (most recent call last):
api                    |   File "/code/manage.py", line 17, in <module>
api                    |     execute_from_command_line(sys.argv)
api                    |   File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
api                    |     utility.execute()
api                    |   File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 436, in execute
api                    |     self.fetch_command(subcommand).run_from_argv(self.argv)
api                    |   File "/usr/local/lib/python3.11/site-packages/django/core/management/base.py", line 412, in run_from_argv
api                    |     self.execute(*args, **cmd_options)
api                    |   File "/usr/local/lib/python3.11/site-packages/django/core/management/base.py", line 458, in execute
api                    |     output = self.handle(*args, **options)
api                    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api                    |   File "/usr/local/lib/python3.11/site-packages/django/core/management/base.py", line 106, in wrapper
api                    |     res = handle_func(*args, **kwargs)
api                    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api                    |   File "/usr/local/lib/python3.11/site-packages/django/core/management/commands/migrate.py", line 356, in handle
api                    |     post_migrate_state = executor.migrate(
api                    |                          ^^^^^^^^^^^^^^^^^
api                    |   File "/usr/local/lib/python3.11/site-packages/django/db/migrations/executor.py", line 135, in migrate
api                    |     state = self._migrate_all_forwards(
api                    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
api                    |   File "/usr/local/lib/python3.11/site-packages/django/db/migrations/executor.py", line 167, in _migrate_all_forwards
api                    |     state = self.apply_migration(
api                    |             ^^^^^^^^^^^^^^^^^^^^^
api                    |   File "/usr/local/lib/python3.11/site-packages/django/db/migrations/executor.py", line 252, in apply_migration
api                    |     state = migration.apply(state, schema_editor)
api                    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api                    |   File "/usr/local/lib/python3.11/site-packages/django/db/migrations/migration.py", line 132, in apply
api                    |     operation.database_forwards(
api                    |   File "/usr/local/lib/python3.11/site-packages/django/db/migrations/operations/special.py", line 193, in database_forwards
api                    |     self.code(from_state.apps, schema_editor)
api                    |   File "/code/plane/db/migrations/0041_cycle_sort_order_issuecomment_access_and_more.py", line 124, in workspace_member_properties
api                    |     obj.default_props["properties"]["start_date"] = True
api                    |     ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
api                    | KeyError: 'properties'
api exited with code 0
(...)
beatworker             | [2023-11-23 12:26:41,179: CRITICAL/MainProcess] beat raised exception <class 'django.db.utils.ProgrammingError'>: ProgrammingError('relation "django_celery_beat_periodictask" does not exist\nLINE 1: ...ango_celery_beat_periodictask"."description" FROM "django_ce...\n                                                             ^')
beatworker             | Traceback (most recent call last):
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute
beatworker             |     return self.cursor.execute(sql, params)
beatworker             |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/psycopg/cursor.py", line 737, in execute
beatworker             |     raise ex.with_traceback(None)
beatworker             | psycopg.errors.UndefinedTable: relation "django_celery_beat_periodictask" does not exist
beatworker             | LINE 1: ...ango_celery_beat_periodictask"."description" FROM "django_ce...
beatworker             |                                                              ^
beatworker             |
beatworker             | The above exception was the direct cause of the following exception:
beatworker             |
beatworker             | Traceback (most recent call last):
beatworker             |   File "/usr/local/lib/python3.11/site-packages/celery/apps/beat.py", line 113, in start_scheduler
beatworker             |     service.start()
beatworker             |   File "/usr/local/lib/python3.11/site-packages/celery/beat.py", line 634, in start
beatworker             |     humanize_seconds(self.scheduler.max_interval))
beatworker             |                      ^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/kombu/utils/objects.py", line 31, in __get__
beatworker             |     return super().__get__(instance, owner)
beatworker             |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/functools.py", line 1001, in __get__
beatworker             |     val = self.func(instance)
beatworker             |           ^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/celery/beat.py", line 677, in scheduler
beatworker             |     return self.get_scheduler()
beatworker             |            ^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/celery/beat.py", line 668, in get_scheduler
beatworker             |     return symbol_by_name(self.scheduler_cls, aliases=aliases)(
beatworker             |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django_celery_beat/schedulers.py", line 233, in __init__
beatworker             |     Scheduler.__init__(self, *args, **kwargs)
beatworker             |   File "/usr/local/lib/python3.11/site-packages/celery/beat.py", line 264, in __init__
beatworker             |     self.setup_schedule()
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django_celery_beat/schedulers.py", line 241, in setup_schedule
beatworker             |     self.install_default_entries(self.schedule)
beatworker             |                                  ^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django_celery_beat/schedulers.py", line 363, in schedule
beatworker             |     self._schedule = self.all_as_schedule()
beatworker             |                      ^^^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django_celery_beat/schedulers.py", line 247, in all_as_schedule
beatworker             |     for model in self.Model.objects.enabled():
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__
beatworker             |     self._fetch_all()
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all
beatworker             |     self._result_cache = list(self._iterable_class(self))
beatworker             |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__
beatworker             |     results = compiler.execute_sql(
beatworker             |               ^^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql
beatworker             |     cursor.execute(sql, params)
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute
beatworker             |     return self._execute_with_wrappers(
beatworker             |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers
beatworker             |     return executor(sql, params, many, context)
beatworker             |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute
beatworker             |     with self.db.wrap_database_errors:
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/utils.py", line 91, in __exit__
beatworker             |     raise dj_exc_value.with_traceback(traceback) from exc_value
beatworker             |   File "/usr/local/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute
beatworker             |     return self.cursor.execute(sql, params)
beatworker             |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
beatworker             |   File "/usr/local/lib/python3.11/site-packages/psycopg/cursor.py", line 737, in execute
beatworker             |     raise ex.with_traceback(None)
beatworker             | django.db.utils.ProgrammingError: relation "django_celery_beat_periodictask" does not exist
beatworker             | LINE 1: ...ango_celery_beat_periodictask"."description" FROM "django_ce...
beatworker exited with code 0
(...)

I tripple-checked all the .env variables but I couldn't find any problem there.
So it currently looks like an unsupported migration case?!

Steps to reproduce

  1. Update all docker images and files
  2. Update all .env files accordingly (or run setup.sh again and re-configure)
  3. Execute docker compose -f docker-compose-hub.yml up

Browser

Other

Version

Self-hosted

BnAmN avatar Nov 23 '23 12:11 BnAmN

I also applied the suggested fix from https://github.com/makeplane/plane/issues/2341#issuecomment-1744514302, but that didn't fix the problem either.

BnAmN avatar Nov 23 '23 13:11 BnAmN

@BnAmN, can you upgrade to the latest version? Here are the docs: https://docs.plane.so/self-hosting/docker-compose#upgrading-from-v0-13-2-to-v0-14-x

vihar avatar Dec 18 '23 18:12 vihar

Upgrading to v0.14.x didn't help but I was finally able to make it work again after upgrading to v0.15.1 and following the update guides.

BnAmN avatar Feb 14 '24 11:02 BnAmN