¿Cuál es la mejor manera de verificar la integridad de la base de datos?

Quiero fusionar los usuarios, temas y publicaciones de un foro en otro. Aunque el foro se restaura sin problemas en un entorno de desarrollo, estoy recibiendo errores PG::ForeignKeyViolation al intentar fusionarlo (actualmente en una instalación nueva)… por lo que me pregunto si existe una herramienta de Discourse que pueda verificar la integridad de una base de datos. Si no es así, ¿algún otro consejo o idea?

(También ha habido algunos temas sobre problemas de bases de datos, así que me pregunto si el equipo de DC considera que vale la pena tener una herramienta así si actualmente no está disponible).

He realizado manualmente una comparación de los esquemas entre un foro de Discourse creado hace más de 5 años y una instalación nueva; puedes ver las diferencias aquí:

https://www.diffchecker.com/lZrp2jxJ

Son principalmente cambios de bigint a integer y de character varying(255) a character varying, además de algunas restricciones not null que faltan, pero también hay varios índices ausentes.

Aquí están las líneas que los señalan:

Línea 1646 - faltante:

  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 - faltante:

	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 - faltante:

	      Index "public.schema_migrations_pkey"
 Column  |       Type        | Key? | Definition 
---------+-------------------+------+------------
 version | character varying | yes  | version
primary key, btree, for table "public.schema_migrations"

5487 - parcialmente faltante:

                                       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

5506 - faltante:

           Sequence "public.topic_search_data_topic_id_seq"
  Type   | Start | Minimum |  Maximum   | Increment | Cycles? | Cache 
---------+-------+---------+------------+-----------+---------+-------
 integer |     1 |       1 | 2147483647 |         1 | no      |     1
Owned by: public.topic_search_data.topic_id

6044 - faltante:

    "index_user_badges_on_user_id" btree (user_id)

¿Debería preocuparme por algo en esto? ¿Debería agregar los índices manualmente? ¿Alguna otra opinión o algo más que destaque para alguien? (Son casi las 5 de la mañana aquí y me cuesta mantener los ojos abiertos :see_no_evil:)