Full Mattermost server source with integrated Community Enterprise features. Includes vendor directory for offline/air-gapped builds. Structure: - enterprise-impl/: Enterprise feature implementations - enterprise-community/: Init files that register implementations - enterprise/: Bridge imports (community_imports.go) - vendor/: All dependencies for offline builds Build (online): go build ./cmd/mattermost Build (offline/air-gapped): go build -mod=vendor ./cmd/mattermost 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
40 lines
723 B
SQL
40 lines
723 B
SQL
DO $$
|
|
<< migrate_cte >>
|
|
DECLARE
|
|
column_exist boolean := FALSE;
|
|
BEGIN
|
|
SELECT
|
|
count(*) != 0 INTO column_exist
|
|
FROM
|
|
information_schema.columns
|
|
WHERE
|
|
table_name = 'channels'
|
|
AND table_schema = current_schema()
|
|
AND column_name = 'lastrootpostat';
|
|
IF NOT column_exist THEN
|
|
ALTER TABLE channels ADD COLUMN lastrootpostat bigint DEFAULT '0'::bigint;
|
|
WITH q AS (
|
|
SELECT
|
|
Channels.Id channelid,
|
|
COALESCE(MAX(Posts.CreateAt),
|
|
0) AS lastrootpost
|
|
FROM
|
|
Channels
|
|
LEFT JOIN Posts ON Channels.Id = Posts.ChannelId
|
|
WHERE
|
|
Posts.RootId = ''
|
|
GROUP BY
|
|
Channels.Id
|
|
)
|
|
UPDATE
|
|
Channels
|
|
SET
|
|
LastRootPostAt = q.lastrootpost
|
|
FROM
|
|
q
|
|
WHERE
|
|
q.channelid = Channels.Id;
|
|
END IF;
|
|
END migrate_cte
|
|
$$;
|