mirror of
https://github.com/mattermost/mattermost.git
synced 2026-02-03 20:40:00 -05:00
45 lines
2.1 KiB
Fish
45 lines
2.1 KiB
Fish
LOAD DATABASE
|
|
FROM mysql://{{ .mysql_user }}:{{ .mysql_password }}@mysql:3306/{{ .source_schema }}
|
|
INTO pgsql://{{ .pg_user }}:{{ .pg_password }}@postgres:5432/{{ .target_schema }}
|
|
|
|
WITH data only,
|
|
workers = 8, concurrency = 1,
|
|
multiple readers per thread, rows per range = 10000,
|
|
prefetch rows = 10000, batch rows = 2500,
|
|
create no tables, create no indexes,
|
|
preserve index names
|
|
|
|
SET PostgreSQL PARAMETERS
|
|
maintenance_work_mem to '128MB',
|
|
work_mem to '12MB'
|
|
|
|
SET MySQL PARAMETERS
|
|
net_read_timeout = '120',
|
|
net_write_timeout = '120'
|
|
|
|
CAST column Channels.Type to "channel_type" drop typemod,
|
|
column Teams.Type to "team_type" drop typemod,
|
|
column UploadSessions.Type to "upload_session_type" drop typemod,
|
|
column ChannelBookmarks.Type to "channel_bookmark_type" drop typemod,
|
|
column Drafts.Priority to text,
|
|
type int when (= precision 11) to integer drop typemod,
|
|
type bigint when (= precision 20) to bigint drop typemod,
|
|
type text to varchar drop typemod using remove-null-characters,
|
|
type tinyint when (<= precision 4) to boolean using tinyint-to-boolean,
|
|
type json to jsonb drop typemod using remove-null-characters
|
|
|
|
EXCLUDING TABLE NAMES MATCHING ~<IR_>, ~<focalboard>
|
|
|
|
BEFORE LOAD DO
|
|
$$ ALTER SCHEMA public RENAME TO {{ .source_schema }}; $$,
|
|
$$ TRUNCATE TABLE {{ .source_schema }}.systems; $$,
|
|
$$ DROP INDEX IF EXISTS {{ .source_schema }}.idx_posts_message_txt; $$,
|
|
$$ DROP INDEX IF EXISTS {{ .source_schema }}.idx_fileinfo_content_txt; $$
|
|
|
|
AFTER LOAD DO
|
|
$$ UPDATE {{ .source_schema }}.db_migrations set name='add_createat_to_teamembers' where version=92; $$,
|
|
$$ CREATE INDEX IF NOT EXISTS idx_posts_message_txt ON {{ .source_schema }}.posts USING gin(to_tsvector('english', message)); $$,
|
|
$$ CREATE INDEX IF NOT EXISTS idx_fileinfo_content_txt ON {{ .source_schema }}.fileinfo USING gin(to_tsvector('english', content)); $$,
|
|
$$ ALTER SCHEMA {{ .source_schema }} RENAME TO public; $$,
|
|
$$ SELECT pg_catalog.set_config('search_path', '"$user", public', false); $$,
|
|
$$ ALTER USER {{ .pg_user }} SET SEARCH_PATH TO 'public'; $$;
|