ThorstenThorsten wrote the following post Tue, 27 Oct 2026 22:54:07 +0100
@!Hubzilla Support Forum

Hello,

I am currently reviewing my Hubzilla database (Hubzilla 11.4.2, MariaDB 11.4) which is rather old and have found several differences between my database and the current defined install/schema_mysql.sql. I would appreciate some guidance on whether the current schema should be considered authoritative and how to handle these differences safely.

1. item.source_xchan

  • My database: BLOB NULL
  • Current schema: CHAR(191) NOT NULL DEFAULT ''
  • Out of 25,411 records, 5,586 have NULL in source_xchan. In all these records, author_xchan is populated.

Is the definition in the current schema authoritative? What is the significance of these NULL values, and how should they be handled if the column is changed to match the schema?

2. item.title

  • My database: BLOB NULL
  • Current schema: TEXT NOT NULL
  • None of the 25,411 records currently have NULL in title.

Can I safely change this column to TEXT NOT NULL to match the current schema? Is there anything specific I should consider before doing so?

3. OAuth token expiration timestamps

In the live database, the expires columns in the following tables have the same definition:

  • oauth_access_tokens
  • oauth_authorization_codes
  • oauth_refresh_tokens

TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP


In the current schema, each column is defined simply as TIMESTAMP NOT NULL.

Is automatically updating the expiration timestamp whenever the row is modified intentional, or is this a leftover from an older schema definition? Should these columns be changed to match the current schema?

Thanks for your help!