Best way to push an initial ayon project to kitsu?

I’ve got an ayon project and I want to start using Kitsu what’s the best way of doing that.

Can I push my ayon tasks to kitsu, sync, clean up stuff and start working from there?

Or can I make a kitsu project and map my ayon tasks to kitsu tasks?

Also the docs mention a push-to-zou command but kitsu doesnt show up as a module at all in my ayon_console. Is that right?

It does also say openpype_console as well so might be outdated.

image

image

Hello,
Currently, as far as I know, the sync works in one direction Kitsu -> AYON
You can sync/bring users, projects, tasks and etc from Kitsu to AYON but not the opposite.

The docs you mentioned is deprecated from OpenPype days.
There’s a PR for updating kitsu addon docs.

Also, for reference, here’s a the community post where kitsu sync was discussed

I think @Danell can provide further insights.

1 Like

Thanks for the answer!

I thought that might be the case but was hoping I was wrong. :cry:

Let me share my experiance!)

(in my case: mostly its compositing work and cgi)

When I start a project i create a project in kitsu and create one sequence with Edit task on it

after i pair kitsu project to ayon (for be its a good habbit to relaunch kitsu service because i found that sometimes it lags and not syncs properly but after relauch it works greate i think that this is problem w my architecture and how i build all my ierarhy so i believe its not a cane for everyone)

after i configure apps (because only apps not copying from production anatomy template @mustafa_jafar hope sometime pairing will copy full settings from anatomy)

after i open hiero to conform shots for comp, after conforming is done, i export working shots to exr acescg dwab and build new track from exported exrs (its nessesary because ffmpeg sometimes brake framerange and i found its better to conwert incoming plates earlier because anyway it will be conderted after comp anyway but no problems with further conforming and publishing shots)

now we have exact number of shots we need to compose so we can came back to kitsu and create needed nubder of shots (and maybe already tasks for each shot)

after i create publishible shots from exrs and then publish it

after all of it ill have wokring ierarhy of tasts and shots and all res\framerange etc data to comp\3d etc and combining it in the last steps of a proects

Yeah from now on, we will setup projects in kitsu first but I was hoping I could have some of our existing ayon projects move over to kitsu as well.

Following on from this, I’ve tried setting up a test project in kitsu, syncing to ayon, it failed so I deleted that test project and restarted my ayon server and now my server is stuck on an endless loop of restarting.

Here’s the cycle the server is going through:

start.sh: Starting setup
2024-07-17 17:59:03 INFO       Log collector initialized
2024-07-17 17:59:03 INFO       setup           Starting setup
2024-07-17 17:59:04 GOOD NEWS  setup           Setup is finished
start.sh: Starting gunicorn server
2024-07-17 17:59:04 INFO       Log collector initialized
2024-07-17 17:59:04 ERROR      server          API plug-in 'actions' has no router
2024-07-17 17:59:05 ERROR      server          API plug-in 'review' has no router
2024-07-17 17:59:06 DEBUG      server          Adding access_group editor
2024-07-17 17:59:06 DEBUG      server          Adding access_group user
[2024-07-17 17:59:06 +1000] [10] [ERROR] Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 732, in lifespan
    async with self.lifespan_context(app) as maybe_state:
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 608, in __aenter__
    await self._router.startup()
  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 709, in startup
    await handler()
  File "/backend/ayon_server/api/server.py", line 403, in startup_event
    await AccessGroups.load()
  File "/backend/ayon_server/access/access_groups.py", line 35, in load
    async for row in Postgres.iterate(
  File "/backend/ayon_server/lib/postgres.py", line 155, in iterate
    statement = await connection.prepare(query)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/asyncpg/connection.py", line 636, in prepare
    return await self._prepare(
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/asyncpg/connection.py", line 654, in _prepare
    stmt = await self._get_statement(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/asyncpg/connection.py", line 433, in _get_statement
    statement = await self._protocol.prepare(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "asyncpg/protocol/protocol.pyx", line 166, in prepare
asyncpg.exceptions.UndefinedTableError: relation "project_corsican_kitsu.access_groups" does not exist

[2024-07-17 17:59:06 +1000] [10] [ERROR] Application startup failed. Exiting.
[2024-07-17 17:59:07 +1000] [1] [ERROR] Worker (pid:10) exited with code 3
[2024-07-17 17:59:07 +1000] [1] [ERROR] Shutting down: Master
[2024-07-17 17:59:07 +1000] [1] [ERROR] Reason: Worker failed to boot

That corsican_kitsu here being my deleted test project.
I’m not sure if this is a kitsu issue or a deleting an ayon project issue.

Looks like this might already be fixed by this :

1 Like

Yes. Without that fix. What’s best to clear that REDIS cache? @martin.wacker

Without that fix, the easiest way is to just restart redis container (docker compose restart redis)… It will also log out users - I’m sorry about this one - we aim to release the next version today/tomorrow in the case you don’t want to use dev image.

1 Like

All good, I ended up panic pulling the dev image as soon as I saw that fix and that solved my issues.