I want to merge the users, topics and posts from one forum into another and while the forum restores onto a dev environment without issue, I am getting PG::ForeignKeyViolation errors when trying to merge it (currently into a fresh install)… so wondered whether there is a Discourse tool that can check the integrity of a database? If not, any other tips or ideas?
(There’s also been a few topics about database issues so wondering if this is something the DC team think is worth having if such a tool is not currently available?)
Mostly changes of bigint to integer and character varying(255) to character varying and a few not nulls missing, but there are some indexes missing too.
Here are the lines that point them out:
Line 1646 - missing:
Index "public.index_badges_on_badge_type_id"
Column | Type | Key? | Definition Column | Type | Key? | Definition
--------+------------------------+------+------------ ---------------+---------+------+---------------
name | character varying(255) | yes | name badge_type_id | integer | yes | badge_type_id
btree, for table "public.badges"
3301 - missing:
Index "public.index_user_badges_on_user_id"
Column | Type | Key? | Definition
---------+---------+------+------------
user_id | integer | yes | user_id
btree, for table "public.user_badges"
4639 - missing:
Index "public.schema_migrations_pkey"
Column | Type | Key? | Definition
---------+-------------------+------+------------
version | character varying | yes | version
primary key, btree, for table "public.schema_migrations"
5487 - partly missing:
Table "public.topic_search_data"
Column | Type | Collation | Nullable | Default Column | Type | Collation | Nullable | Default
-------------+------------------------+-----------+----------+--------- -------------+-------------------+-----------+----------+-----------------------------------------------------
topic_id | integer | | not null | topic_id | integer | | not null | nextval('topic_search_data_topic_id_seq'::regclass)
raw_data | text | | | raw_data | text | | |
locale | character varying(255) | | not null | locale | character varying | | not null |
search_data | tsvector | | | search_data | tsvector | | |
version | integer | | | 0 version | integer | | | 0
Should I be concerned about anything here? Should I add the indexes manually? Any other thoughts or anything else stand out to anyone (it’s nearly 5am here and I’m struggling to keep my eyes open )