Skip to content

Explain auto docu and fix NewFlowPostgres#262

Open
ostcar wants to merge 3 commits into
OpenSlides:mainfrom
ostcar:explain_environment
Open

Explain auto docu and fix NewFlowPostgres#262
ostcar wants to merge 3 commits into
OpenSlides:mainfrom
ostcar:explain_environment

Conversation

@ostcar

@ostcar ostcar commented May 10, 2026

Copy link
Copy Markdown
Member

@bastianjoel The bug with the auto generation of the environment happens, because I never documented, how the environment system works.

I added some explanation, how the system was designed. I also changed the NewFlowPostgres function, to it behaves correctly.

You can find the necessary changes for a service here for the autoupdate: OpenSlides/openslides-autoupdate-service#1426

If you are ok with this change, then we have to fix the other go services as well.

If you don't like it, we have to discuss, how we solve it in another way. The current implementation breaks the idea behind the environment package.

Another way would be, if the Postgres-flow gets an "init" method that has to be called after NewFlowPostgres.

postgres, err := NewFlowPostgres(lookup)
service := func(ctx conext.Context) error{
  postgres.init(ctx)
}

I like the returned init function better, because it makes it very hard to forget to call it. But an separate init method would be ok for me.

@ostcar ostcar requested a review from bastianjoel May 10, 2026 12:13
@ostcar ostcar added the bug label May 10, 2026
@m-schieder m-schieder enabled auto-merge (squash) July 3, 2026 12:55
@m-schieder m-schieder disabled auto-merge July 3, 2026 13:00
_ = conn
// err = waitDatabaseInitialized(ctx, conn)
// _ = conn.Close(ctx)
// if err != nil {

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bastianjoel I deactivated this code, since I did not know how to solve it.
This code checks for the version table. It only passes, if the version table has one entry. But I don't know, when it is written.

Is it the backend? If so, we need another check. Because the backend is not running in the go tests.

Can you tell me, who is writing into the version table?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes indeed the backend is filling the version table during initialization and migrations.
I advise you to add a migration number to the version table in your test setups initialization process right after filling in the schema.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. Currently I don't see a reason not to do it here. This file expects an empty database anyway.

@ostcar ostcar requested a review from bastianjoel July 3, 2026 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants