Skip to content

feat: add UUIDs to columns#2598

Merged
blizzz merged 9 commits into
mainfrom
enh/column-uuids
Jul 21, 2026
Merged

feat: add UUIDs to columns#2598
blizzz merged 9 commits into
mainfrom
enh/column-uuids

Conversation

@blizzz

@blizzz blizzz commented May 13, 2026

Copy link
Copy Markdown
Member

Base for structural updates, cf. my comment in #2504 (comment)

  • Add UUIDs to Tables or consider unnecessary
  • Add UUIDs to Views or consider unnecessary
  • Add UUIDs to multiselection options
  • Take over column UUIDs when creating columns from schema
  • Treat multiselection default on export and import

@blizzz
blizzz requested a review from enjeck as a code owner May 13, 2026 20:04
@blizzz blizzz added the 2. developing Work in progress label May 13, 2026
@blizzz
blizzz force-pushed the enh/column-uuids branch from a7d556b to 1564e5e Compare May 13, 2026 20:10
Comment thread lib/Migration/Version2020Date20260513185340.php
Comment thread .scoper-production-dependencies Outdated
@blizzz
blizzz force-pushed the enh/column-uuids branch from 1564e5e to dc4ed01 Compare May 18, 2026 20:59
@blizzz

blizzz commented May 18, 2026

Copy link
Copy Markdown
Member Author

Add UUIDs to Tables or consider unnecessary
Add UUIDs to Views or consider unnecessary

Would not implement it now as it is not required currently. If necessary for an auto-update of a table without specifying local ids, this can be always added alter on easily.

@blizzz
blizzz force-pushed the enh/column-uuids branch from ae85f9f to bd52932 Compare May 28, 2026 12:18
@Koc

Koc commented May 28, 2026

Copy link
Copy Markdown
Contributor

I guess that uuid should be unique across table (we need add unique id for table_id+uuid).

Here use-cases that we need to support:

Table update between instance

  • a developer designs and evolves a table schema locally using UI
  • exports the schema
  • imports it into production
  • later changes the schema locally again
  • and wants to apply those schema updates to the already existing production table without recreating it from scratch

Table duplocation a single NC instance

A second scenario is especially important for end users who do not have separate environments:

  • a developer designs and evolves a table schema using UI
  • exports the schema
  • imports it into another table on same instance

@blizzz

blizzz commented May 28, 2026

Copy link
Copy Markdown
Member Author

I guess that uuid should be unique across table (we need add unique id for table_id+uuid).

Here use-cases that we need to support:

Table update between instance

* a developer designs and evolves a table schema locally using UI

* exports the schema

* imports it into production

* later changes the schema locally again

* and wants to apply those schema updates to the already existing production table without recreating it from scratch

Yupp, this scenario is exactly what are having in mind.

Table duplocation a single NC instance

A second scenario is especially important for end users who do not have separate environments:

* a developer designs and evolves a table schema using UI

* exports the schema

* imports it into another table on same instance

This would also be covered, as importing always requires a target table. So having columns with the same UUID across different tables is intentional. Hence importing, so the plan, would only affect the columns on the targeted table.

@enjeck
enjeck force-pushed the enh/column-uuids branch from bd52932 to b43e52c Compare June 6, 2026 19:54
@blizzz
blizzz force-pushed the enh/column-uuids branch from b43e52c to 8572960 Compare June 8, 2026 08:32
@blizzz
blizzz force-pushed the enh/column-uuids branch from 8572960 to 85e5210 Compare June 15, 2026 10:34

@enjeck enjeck left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

some comments

Comment thread lib/Db/Column.php Outdated
Comment thread lib/Db/Column.php Outdated
Comment thread lib/Db/Column.php Outdated
Comment thread lib/Db/Column.php
Comment thread lib/Db/Column.php
Comment thread lib/Migration/Version2020Date20260513185340.php
@blizzz blizzz moved this to 🏗️ In progress in 📝 Productivity team Jun 25, 2026
@blizzz blizzz self-assigned this Jun 25, 2026
@blizzz
blizzz force-pushed the enh/column-uuids branch 3 times, most recently from ae39c12 to 467b0d3 Compare June 29, 2026 21:01
@blizzz
blizzz force-pushed the enh/column-uuids branch 3 times, most recently from bfc9724 to 3c96380 Compare July 6, 2026 19:40
@blizzz

blizzz commented Jul 6, 2026

Copy link
Copy Markdown
Member Author

@enjeck resolved all your comments. For you convenience, I have the essential changes still left in the unstashed fixup-PRs, and then there is just one additional commit. I would leave this now as the basework and would implement the create and update logic in a seperate PR.

@blizzz

blizzz commented Jul 7, 2026

Copy link
Copy Markdown
Member Author

Locally, all Playwright tests pass…

@blizzz blizzz added 3. to review Waiting for reviews and removed 2. developing Work in progress labels Jul 7, 2026
@blizzz

blizzz commented Jul 7, 2026

Copy link
Copy Markdown
Member Author
  • have to generate UUIDs also for selection options during migration

@blizzz

blizzz commented Jul 16, 2026

Copy link
Copy Markdown
Member Author
  • UUID information of multi-selection options is lost on export

@blizzz
blizzz force-pushed the enh/column-uuids branch from e694866 to 13e84af Compare July 16, 2026 15:24
@blizzz
blizzz force-pushed the enh/column-uuids branch 2 times, most recently from 3b06d7d to 435004b Compare July 17, 2026 15:28
@blizzz

blizzz commented Jul 20, 2026

Copy link
Copy Markdown
Member Author

Add UUIDs to Tables or consider unnecessary
Add UUIDs to Views or consider unnecessary

Would not implement it now as it is not required currently. If necessary for an auto-update of a table without specifying local ids, this can be always added alter on easily.

I am challenging my statement now, but would rather do this in a follow up PR. Added with latest commit.

@blizzz
blizzz force-pushed the enh/column-uuids branch from 435004b to 483899e Compare July 20, 2026 12:07
@blizzz blizzz added the enhancement New feature or request label Jul 20, 2026
@blizzz
blizzz force-pushed the enh/column-uuids branch from 483899e to 8b260b1 Compare July 20, 2026 12:16

@luka-nextcloud luka-nextcloud left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@blizzz I have tested and it works great. I just have a minor comment.

Comment thread lib/Db/Column.php Outdated
@blizzz
blizzz requested a review from luka-nextcloud July 20, 2026 16:06
@blizzz
blizzz force-pushed the enh/column-uuids branch from e56b53c to 9aeddb6 Compare July 20, 2026 17:27
@blizzz

blizzz commented Jul 20, 2026

Copy link
Copy Markdown
Member Author

Thx, rebased and squashed everything.

blizzz added 7 commits July 21, 2026 06:08
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
@enjeck
enjeck force-pushed the enh/column-uuids branch from 9aeddb6 to 16029da Compare July 21, 2026 05:08
blizzz added 2 commits July 21, 2026 23:26
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
@blizzz
blizzz force-pushed the enh/column-uuids branch from 1cc588c to 66eee66 Compare July 21, 2026 21:26
@blizzz
blizzz merged commit b2bf2f6 into main Jul 21, 2026
75 checks passed
@blizzz
blizzz deleted the enh/column-uuids branch July 21, 2026 21:52
@github-project-automation github-project-automation Bot moved this from 🏗️ In progress to ☑️ Done in 📝 Productivity team Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review Waiting for reviews enhancement New feature or request

Projects

Status: ☑️ Done

Development

Successfully merging this pull request may close these issues.

4 participants