p75 - show database version error in GUI

This commit is contained in:
steffen123 2008-09-01 16:18:01 +01:00
parent 817c227dcb
commit c963599b76
3 changed files with 33 additions and 29 deletions

View File

@ -7,13 +7,12 @@ alpha3 (release 1-2Sep?)
(fixed by ray) auto import only runs on one file per start (fixed by ray) auto import only runs on one file per start
find correct sf logo link find correct sf logo link
show database version error in GUI and use fpdb_db class const for it, add it to title windows integrated installer
update install-in-gentoo on website update install-in-gentoo on website
update ebuild and ubuntu guide for HUD_config.xml update ebuild and ubuntu guide for HUD_config.xml
implement stud HudCache implement stud HudCache
implement storeHudCache for stud base implement storeHudCache for stud base
anonymiser script to generate testdata without making a dozen find&replace all... remember to replace hand no with running no
specify NOT NULL on almost all table columns specify NOT NULL on almost all table columns
store raw hand in db and write reimport function using the raw hand field store raw hand in db and write reimport function using the raw hand field
make windows use correct language version of Appdata, e.g. Anwendungdaten. http://mail.python.org/pipermail/python-list/2005-September/341702.html make windows use correct language version of Appdata, e.g. Anwendungdaten. http://mail.python.org/pipermail/python-list/2005-September/341702.html
@ -28,6 +27,8 @@ printhand each and the 2/3 relevant printplayerflags respectively on ps-lhe-ring
alpha4 (release 8Sep?) alpha4 (release 8Sep?)
====== ======
change to savannah?
anonymiser script to generate testdata without making a dozen find&replace all... remember to replace hand no with running no
Everything that didn't make it into alpha3 Everything that didn't make it into alpha3
Import draw (maybe without HudCache for a start) Import draw (maybe without HudCache for a start)
table with data for graphs for SD/F, W$wSF, W$@SD table with data for graphs for SD/F, W$wSF, W$@SD
@ -49,31 +50,25 @@ move version into seperate file for fpdb gui and db
SD/F, W$wsF, W$@SD too low as reported by daedal in 2+2 forum on 12/13aug SD/F, W$wsF, W$@SD too low as reported by daedal in 2+2 forum on 12/13aug
create little test script for people to run to verify successful installation of pydeps create little test script for people to run to verify successful installation of pydeps
split hud data generation into separate for loops and make it more efficient split hud data generation into separate for loops and make it more efficient
fix bug that sawFlop/Turn/River gets miscalculated if someone is allin - might as well add all-in recognition for this fix bug that sawFlop/Turn/River/CBChance/etc gets miscalculated if someone is allin - might as well add all-in recognition for this
make 3 default HUD configs (easy (4-5 fields), advanced (10ish fields), crazy (20 or so)) make 3 default HUD configs (easy (4-5 fields), advanced (10ish fields), crazy (20 or so))
make it work with postgres make it work with postgres
expand instructions for profile file expand instructions for profile file
maybe remove siteId from gametypes maybe remove siteId from gametypes
?change most cache fields to bigint to allow extremely big databases in excess of 2 or 4 million hands per stake and position? ?change most cache fields to bigint to allow extremely big databases in excess of 2 or 4 million hands per stake and position?
rakeback/frequent player points rakeback/frequent player points
gentoo ebuild: USE postgresql
skins skins
optionally combine FB/FS and CB/2B/3B
separate all gui and all processing into files that are named accordingly separate all gui and all processing into files that are named accordingly
ensure that there is only one db handle flying around and that its state is handled properly, ie. by the GUI. i think that might be why we have to reconnect the DB in tableviewer. ensure that there is only one db handle flying around and that its state is handled properly, ie. by the GUI. i think that might be why we have to reconnect the DB in tableviewer.
figure out what slowed it down so much between git19 and git21 (8/9aug)
why do we have to reconnect in tv.read_names_clicked? why do we have to reconnect in tv.read_names_clicked?
implement error file in importer implement error file in importer
catch index error, type error, file not found error catch index error, type error, file not found error
use different colours according to classification. HUD: use different colours according to classification.
move prepare-git.sh and create-release.sh to utils move prepare-git.sh and create-release.sh to utils
offer not storing db password offer not storing db password
change definition of bet to exclude bring in change definition of bet to exclude bring in
in tv, select from hud table using named fields rather than the current *
remove remains of mysql/myisam support.
fix GUI's load profile fix GUI's load profile
HUD
config wizard config wizard
file permission script, use games group file permission script, use games group
make bulk importer display a grand total in the GUI make bulk importer display a grand total in the GUI
@ -90,42 +85,31 @@ verify at least 2 or 3 sng hands
no rush but before 1.0RC no rush but before 1.0RC
======================== ========================
recognise&handle all-in for CB etc. (mostly useful for NL/PL, in limit I would argue missing a chance due to lack of money is the same as missing it due to sneezing and clicking the wrong button) make DB version error offer reimport, recreation and continue.
In many places there are unnecessary database accesses or it regenerates information it already had before or just generally does things in obscenely inefficient ways. Optimise this In many places there are unnecessary database accesses or it regenerates information it already had before or just generally does things in obscenely inefficient ways. Optimise this
multi-select in bulk importer multi-select in bulk importer
make option to use "traditional" labels, e.g. WtSD instead of SD/F
HTMLify docs and validate them
cut down action_types array size to appropriate length cut down action_types array size to appropriate length
make the gui display errors make the gui display errors
log file log file
move directory import code from gui to backend move directory import code from gui to backend
convert fpdb_import to not require passing "self", generally clean the parameter passing convert fpdb_import to not require passing "self", generally clean the parameter passing
(tedious general stability improvement for unusual playernames): change all the str.find so they dont accidentially count player names containing the searched phrase. e.g. with rfind.
Doesn't handle Daylight Saving Time (I don't think at least) Doesn't handle Daylight Saving Time (I don't think at least)
Need to store if someone goes all-in, particularly for better NL/PL support.
verify at least 3 hands per category per site per limit_type (when cap then do 2 normal and one 1 capped) incl tv display
put lines in tv to make it easier to read
ensure that refresh still takes no more than 10 seks on my P3M-800 (a quick run on git15 indicates this is ok now), or 5 with remote DB ensure that refresh still takes no more than 10 seks on my P3M-800 (a quick run on git15 indicates this is ok now), or 5 with remote DB
select range of stakes and sng/mtt values and types for tv select range of stakes and sng/mtt values and types for hud
change "for i" to more sensible var name instead of i
recognise somewhere if a file is still active and if so keep it open and only read new hands rather than detecting dupes recognise somewhere if a file is still active and if so keep it open and only read new hands rather than detecting dupes
return full ftp functionality
can wait till 1.x can wait till 1.x
================= =================
return full ftp functionality
in all importer: stop doing if site=="ftp", make class constants for site_id instead in all importer: stop doing if site=="ftp", make class constants for site_id instead
finish cleaning tabledesign html code
rearrange huddata fields
It treats fold due to disconnect as voluntary fold which is not ideal It treats fold due to disconnect as voluntary fold which is not ideal
check for unnecessary db.commit() check for unnecessary db.commit()
aliases aliases
Probably PartyPoker for all or most supported games
repair hands where the seat lines are missing, happens when observing at FTP repair hands where the seat lines are missing, happens when observing at FTP
flags for storing the reason for winning (best hi, tie for best low, etc.) to DB. not sure actually if this is such a good idea remember that there can be multiple reasons for the same player in the same hand flags for storing the reason for winning (best hi, tie for best low, etc.) to DB. not sure actually if this is such a good idea remember that there can be multiple reasons for the same player in the same hand
windows integrated installer
benchmark properly on mysql innodb, postgresql, more? benchmark properly on mysql innodb, postgresql, more?
rename things like this: ClassName.methodName and variableName. do this on tables too. update codingstyle rename things like this: ClassName.methodName and variableName. update codingstyle
CLI (not ncurses, proper CLI) equivalent for fpdb.py CLI (not ncurses, normal CLI) equivalent for fpdb.py
optimise/simplify storing by creating the SQL statements depending on hand rather than calling different methods optimise/simplify storing by creating the SQL statements depending on hand rather than calling different methods
make range of activeSeats configurable for tv/hud make range of activeSeats configurable for tv/hud

View File

@ -322,6 +322,23 @@ class fpdb:
self.db = fpdb_db.fpdb_db() self.db = fpdb_db.fpdb_db()
#print "end of fpdb.load_profile, databaseName:",self.settings['db-databaseName'] #print "end of fpdb.load_profile, databaseName:",self.settings['db-databaseName']
self.db.connect(self.settings['db-backend'], self.settings['db-host'], self.settings['db-databaseName'], self.settings['db-user'], self.settings['db-password']) self.db.connect(self.settings['db-backend'], self.settings['db-host'], self.settings['db-databaseName'], self.settings['db-user'], self.settings['db-password'])
if self.db.wrongDbVersion:
diaDbVersionWarning = gtk.Dialog(title="Strong Warning - Invalid database version", parent=None, flags=0, buttons=(gtk.STOCK_OK,gtk.RESPONSE_OK))
label = gtk.Label("An invalid DB version or missing tables have been detected.")
diaDbVersionWarning.vbox.add(label)
label.show()
label = gtk.Label("This error is not necessarily fatal but it is strongly recommended that you recreate the tables by using the Database menu.")
diaDbVersionWarning.vbox.add(label)
label.show()
label = gtk.Label("Not doing this will likely lead to misbehaviour including fpdb crashes, corrupt data etc.")
diaDbVersionWarning.vbox.add(label)
label.show()
response = diaDbVersionWarning.run()
diaDbVersionWarning.destroy()
#end def load_profile #end def load_profile
def not_implemented(self): def not_implemented(self):
@ -391,7 +408,7 @@ This program is licensed under the AGPL3, see docs"""+os.sep+"agpl-3.0.txt")
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect("delete_event", self.delete_event) self.window.connect("delete_event", self.delete_event)
self.window.connect("destroy", self.destroy) self.window.connect("destroy", self.destroy)
self.window.set_title("Free Poker DB - version: alpha2+, p72") self.window.set_title("Free Poker DB - version: alpha2+, p75")
self.window.set_border_width(1) self.window.set_border_width(1)
self.window.set_size_request(1020,400) self.window.set_size_request(1020,400)
self.window.set_resizable(True) self.window.set_resizable(True)

View File

@ -44,13 +44,16 @@ class fpdb_db:
else: else:
raise fpdb_simple.FpdbError("unrecognised database backend:"+backend) raise fpdb_simple.FpdbError("unrecognised database backend:"+backend)
self.cursor=self.db.cursor() self.cursor=self.db.cursor()
self.wrongDbVersion=False
try: try:
self.cursor.execute("SELECT * FROM Settings") self.cursor.execute("SELECT * FROM Settings")
settings=self.cursor.fetchone() settings=self.cursor.fetchone()
if settings[0]!=53: if settings[0]!=75:
print "outdated or too new database version - please recreate tables" print "outdated or too new database version - please recreate tables"
self.wrongDbVersion=True
except:# _mysql_exceptions.ProgrammingError: except:# _mysql_exceptions.ProgrammingError:
print "failed to read settings table - please recreate tables" print "failed to read settings table - please recreate tables"
self.wrongDbVersion=True
#end def connect #end def connect
def create_table(self, string): def create_table(self, string):
@ -356,7 +359,7 @@ class fpdb_db:
street4CheckCallRaiseChance INT, street4CheckCallRaiseChance INT,
street4CheckCallRaiseDone INT)""") street4CheckCallRaiseDone INT)""")
self.cursor.execute("INSERT INTO Settings VALUES (53);") self.cursor.execute("INSERT INTO Settings VALUES (75);")
self.cursor.execute("INSERT INTO Sites VALUES (DEFAULT, \"Full Tilt Poker\", 'USD');") self.cursor.execute("INSERT INTO Sites VALUES (DEFAULT, \"Full Tilt Poker\", 'USD');")
self.cursor.execute("INSERT INTO Sites VALUES (DEFAULT, \"PokerStars\", 'USD');") self.cursor.execute("INSERT INTO Sites VALUES (DEFAULT, \"PokerStars\", 'USD');")
self.cursor.execute("INSERT INTO TourneyTypes (id) VALUES (DEFAULT);") self.cursor.execute("INSERT INTO TourneyTypes (id) VALUES (DEFAULT);")