MMOLDB is a publicly queryable SQL database for MMOLB games inspired by the Blaseball datablase. It's still in early development.
You can connect to the MMOLDB database using any Postgresql query tool (pgAdmin is a popular choice). Connect using these settings:
mmoldb.beiju.me. Do not add http
or https — the connection uses a different protocol.
42416
mmoldb
guest
moldybees
All other settings you should be able to leave at their defaults.
To connect using pgAdmin, go to the Query Tool Workspace (the second icon down at the very left of the screen) and input these connection settings.
Note: MMOLDB already has a lot of data, and as I'm writing
this it's only season 2. For your sake and my server's, I suggest
using low limits on your queries as you're debugging them.
It'll make your results load faster and reduce the load on the server.
Just don't forget to take it off before getting your final results.
Huge thanks to Astrid for Chron, without which none of this would be possible.
Another huge thanks to WoofyJack for mmolb_parsing, without which MMOLDB
updates would be much slower.
Contributors (project lifetime): WoofyJack, Ifhbiff, Centritide.
taxa.attribute_effect_type value Additive (short for
"additive multiplier") has been renamed to its now-known name Multiplier.
The speculative Multiplicative value (short for "multiplicative
multiplier") has been removed until its actual name is known.data.player_versions_extendeddata.player_versions_extended and its
documentation. Big thanks to Ifhbiff for a doing a lot of work creating and
documenting this view.data.player_report_attribute_versions and
data.player_equipment_effect_versions getting corrupted when the equipment
slot is cleared / when the report is removed.data.team_games_played with the feed events for games ending. This is
primarily useful for the timestamp. It can be used to find the proper team
and player versions to use for a given game. It is not necessarily guaranteed
that every game has an entry in team_games_played.data.events_extended view with a some useful fields for events,
including game_end_timestamp derived from team_games_played.data.defense_outcomes and data.offense_outcomes materialized views,
with a count of occurrences of each event type broken down by season, league,
and fielding position. I would also like to break it down by day type
(Regular season/Postseason/Superstar/Special event/Kumite/Offseason), but
MMOLB has been inconsistent about how days are notated so that will require
some special care. These are currently not documented on the Docs page.fair_ball_fielder_name to data.events?season=season to the URL.data.player_report_attributes and replace it with
data.player_report_versions and data.player_report_attribute_versions.
These use the same valid_from and valid_until system that other
_versions tables do, reflecting the fact that player reports are now
live-updating. This also adds recording of clubhouse talk quotes, which were
previously not in the database.data.games for info.data.modificationsdata.player_versionsdata.player_modification_versionsdata.player_equipment_versionsdata.player_equipment_effect_versionsdata.player_feed_versionsdata.player_attribute_augmentsdata.player_recompositionsdata.player_paradigm_shiftsdata.player_report_attributesdata.games.data.events, but we
plan to move to storing them in a child table like Weather.Known issues:
hit_base for home runs being Third for some reasonstrikes_before columntaxa.base column bases_achieved from bigint to int again? I swear
I did that in the last big update.abbreviation to taxa.pitch_type.taxa.hit_type. Changed data.events column hit_type
to reference taxa.base instead and renamed it to hit_base.taxa.base column bases_achieved from bigint to int. It never
should have been a bigint in the first place.taxa, data, and info schemata.home_team_id and away_team_id to home_team_mmolb_id
and away_team_mmolb_id in data.games.count_strikes and count_balls, which used to store the
count after the event finished, which also means that it stored 0-0 for every
PA-ending event.strikes_before and balls_before, which store the count at the
beginning of the event. The count at the end of the event can be easily
computed, and examples are included in the documentation.away_* and home_* fields to put away first.