Error when starting MySQL server
sscrewston opened this issue · 11 comments
Traceback (most recent call last):
File "peewee.py", line 3144, in execute_sql
sqlite3.IntegrityError: UNIQUE constraint failed: team.team_id
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "nba_sql.py", line 389, in <module>
File "gooey\python_bindings\gooey_decorator.py", line 134, in <lambda>
File "nba_sql.py", line 128, in main
File "general_requester.py", line 51, in populate
File "db_utils.py", line 16, in insert_many
File "db_utils.py", line 30, in __insert_many_sqlite
File "peewee.py", line 1907, in inner
File "peewee.py", line 1978, in execute
File "peewee.py", line 2745, in _execute
File "peewee.py", line 2474, in _execute
File "peewee.py", line 3157, in execute
File "peewee.py", line 3151, in execute_sql
File "peewee.py", line 2917, in __exit__
File "peewee.py", line 190, in reraise
File "peewee.py", line 3144, in execute_sql
peewee.IntegrityError: UNIQUE constraint failed: team.team_id
What is the reproduction on this? Is this from running a fresh database or inserting into an existing one?
This is from running a fresh database from the Windows .exe file.
Also, unrelated question, I'm new to data so this may be a dumb question but why are there different game_id
s for duplicate dates? For example, in the game table, there are 3 2021-10-19T00:00:00
entries and each has a different game_id
despite being the same date.
I was just hoping you could explain this to me, I'm still trying to grasp relational databases.
Ok, will take a look at this when I get some free time.
As for multiple game_ids on the same date: multiple games can be played on the same day. It isn't a one-a-day scenario. Not a dumb question at all.
Ahhhh hearing that makes sense now. I understand, thank you for the clarification.
OK, so the Windows .exe is pretty old and a bugfix was merged that (I think) fixes this. This script can be used to create a release off the main branch, but I'll see if I can get a new .exe created by tomorrow. In the meantime you can try running the program from the commandline.
Also, what seasons were you loading?
I'll test this with MySQL.
It fails when downloading multiple seasons individually:
nba-encyclopedia) *[main][~/docs/projects/nba-encyclopedia]$ gh repo clone mpope9/nba-sql
Cloning into 'nba-sql'...
remote: Enumerating objects: 20044, done.
remote: Counting objects: 100% (624/624), done.
remote: Compressing objects: 100% (232/232), done.
remote: Total 20044 (delta 427), reused 518 (delta 383), pack-reused 19420
Receiving objects: 100% (20044/20044), 141.82 MiB | 44.64 MiB/s, done.
Resolving deltas: 100% (2742/2742), done.
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 1 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), 635 bytes | 317.00 KiB/s, done.
From https://github.com/Jman4190/nba-sql
* [new branch] master -> upstream/master
! Repository Jman4190/nba-sql set as the default repository. To learn more about the default repository, run: gh repo set-default --help
(nba-encyclopedia) *[main][~/docs/projects/nba-encyclopedia]$ python stats/nba_sql.py --create-schema --database sqlite --skip-tables play_by_play pgtt shot_chart_detail --seasons '2022-23' --default-mode
python: can't open file '/Users/boden/docs/projects/nba-encyclopedia/stats/nba_sql.py': [Errno 2] No such file or directory
(nba-encyclopedia) *[main][~/docs/projects/nba-encyclopedia]$ cd nba-sql
(nba-encyclopedia) [master][~/docs/projects/nba-encyclopedia/nba-sql]$ python stats/nba_sql.py --create-schema --database sqlite --skip-tables play_by_play pgtt shot_chart_detail --seasons '2022-23' --default-mode
Loading seasons: ['2022-23'].
Initializing sqlite database.
Loading the database in the default mode.
Initializing schema.
Populating team table.
team Table Loading |██████████████████████████████| 100.0%
Loading event types.
Populating player data
player Table Loading |██████████████████████████████| 100.0%
Loading player_game_log season Data |██████████████████████████████| 100.0% This one will take a while...
Loading cached game table.
Starting PlayerGameLog Insert
Finished PlayerGameLog Insert
Loading Seasonal Data |██████████████████████████████| 100.0% This one will take a while...
Done! Enjoy the hot, fresh database.
(nba-encyclopedia) *[master][~/docs/projects/nba-encyclopedia/nba-sql]$ python stats/nba_sql.py --create-schema --database sqlite --skip-tables play_by_play pgtt shot_chart_detail --seasons '2021-22' --default-mode
Loading seasons: ['2021-22'].
Initializing sqlite database.
Loading the database in the default mode.
Initializing schema.
Populating team table.
team Table Loading |██████████████████████████████| 100.0%
Traceback (most recent call last):
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 3252, in execute_sql
cursor.execute(sql, params or ())
sqlite3.IntegrityError: UNIQUE constraint failed: team.team_id
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/boden/docs/projects/nba-encyclopedia/nba-sql/stats/nba_sql.py", line 398, in <module>
main(args, False)
File "/Users/boden/docs/projects/nba-encyclopedia/nba-sql/stats/nba_sql.py", line 333, in main
default_mode(settings, create_schema, request_gap, seasons, skip_tables, quiet or from_gui)
File "/Users/boden/docs/projects/nba-encyclopedia/nba-sql/stats/nba_sql.py", line 109, in default_mode
team_requester.populate()
File "/Users/boden/docs/projects/nba-encyclopedia/nba-sql/stats/general_requester.py", line 51, in populate
insert_many(self.settings, self.table, self.rows)
File "/Users/boden/docs/projects/nba-encyclopedia/nba-sql/stats/db_utils.py", line 32, in insert_many
__insert_many_sqlite(settings, table, rows)
File "/Users/boden/docs/projects/nba-encyclopedia/nba-sql/stats/db_utils.py", line 47, in __insert_many_sqlite
table.insert_many(row).execute()
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 1972, in inner
return method(self, database, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 2043, in execute
return self._execute(database)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 2848, in _execute
return super(Insert, self)._execute(database)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 2561, in _execute
cursor = database.execute(self)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 3260, in execute
return self.execute_sql(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 3250, in execute_sql
with __exception_wrapper__:
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 3020, in __exit__
reraise(new_type, new_type(exc_value, *exc_args), traceback)
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 192, in reraise
raise value.with_traceback(tb)
File "/Users/boden/anaconda3/envs/nba-encyclopedia/lib/python3.12/site-packages/peewee.py", line 3252, in execute_sql
cursor.execute(sql, params or ())
peewee.IntegrityError: UNIQUE constraint failed: team.team_id
(nba-encyclopedia) *[master][~/docs/projects/nba-encyclopedia/nba-sql]$
But you can get around it like this:
(nba-encyclopedia) [master][~/docs/projects/nba-encyclopedia/nba-sql]$ python stats/nba_sql.py --create-schema --database sqlite --skip-tables play_by_play pgtt shot_chart_detail --seasons {'2021-22','2022-23'} --default-mode
Loading seasons: ['2021-22', '2022-23'].
Initializing sqlite database.
Loading the database in the default mode.
Initializing schema.
Populating team table.
team Table Loading |██████████████████████████████| 100.0%
Loading event types.
Populating player data
player Table Loading |██████████████████████████████| 100.0%
Loading player_game_log season Data |██████████████████████████████| 100.0% This one will take a while...
Loading cached game table.
Starting PlayerGameLog Insert
Finished PlayerGameLog Insert
Loading Seasonal Data |██████████████████████████████| 100.0% This one will take a while...
Done! Enjoy the hot, fresh database.