def _serialization_asserts(db) -> None:
    """
    After a successful migration, Do some checks if serialized jsons are loading
    properly.

    Args:
        db (DB): the db object
    """
    global saved_db_locations
    _, c = db._connect()
    SAVED_DB_FILE_LOC = saved_db_locations[db.filename]
    validation_fail_advice = (
        f"Please open a ticket on trulens github page including details on the old and new trulens versions. "
        f"The migration completed so you can still proceed; but stability is not guaranteed. "
        f"Your original DB file is saved here: {SAVED_DB_FILE_LOC} and can be used with the previous version, or you can `TruSession.reset_database()`"
    )

    for table in db.TABLES:
        c.execute(
            f"""PRAGMA table_info({table});
                """
        )
        columns = c.fetchall()
        for col_idx, col in enumerate(columns):
            col_name_idx = 1
            col_name = col[col_name_idx]
            # This is naive for now...
            if "json" in col_name:
                c.execute(f"""SELECT * FROM {table}""")
                rows = c.fetchall()
                for row in rows:
                    try:
                        if row[col_idx] == MIGRATION_UNKNOWN_STR:
                            continue

                        test_json = json.loads(row[col_idx])
                        # special implementation checks for serialized classes
                        if "implementation" in test_json:
                            try:
                                pyschema_utils.FunctionOrMethod.model_validate(
                                    test_json["implementation"]
                                ).load()
                            except ImportError:
                                # Import error is not a migration problem.
                                # It signals that the function cannot be used for deferred evaluation.
                                pass

                        if col_name == "record_json":
                            record_schema.Record.model_validate(test_json)
                        elif col_name == "cost_json":
                            base_schema.Cost.model_validate(test_json)
                        elif col_name == "perf_json":
                            base_schema.Perf.model_validate(test_json)
                        elif col_name == "calls_json":
                            for record_app_call_json in test_json["calls"]:
                                feedback_schema.FeedbackCall.model_validate(
                                    record_app_call_json
                                )
                        elif col_name == "feedback_json":
                            feedback_schema.FeedbackDefinition.model_validate(
                                test_json
                            )
                        elif col_name == "app_json":
                            app_schema.AppDefinition.model_validate(test_json)
                        else:
                            # If this happens, trulens needs to add a migration

                            raise VersionException(
                                f"serialized column migration not implemented: {col_name}. {validation_fail_advice}"
                            )
                    except Exception as e:
                        tb = traceback.format_exc()

                        raise VersionException(
                            f"Migration failed on {table} {col_name} {row[col_idx]}.\n\n{tb}\n\n{validation_fail_advice}"
                        ) from e

    After a successful migration, Do some checks if serialized jsons are loading
    properly.

    Args:
        db (DB): the db object
    
src/core/trulens/core/database/legacy/migration.py