fixed BUG-26 (saving with a series), and added a bookdb_webdev container that maps ~/src/pybook to /pybook_mapped_volume. Then start a single threaded, reloading, output capturing gunicorn via wraper.sh if in DEV, otherwise normal gunicorn if in PROD - gives me an idnentical dev in a container to prod.

This commit is contained in:
2023-06-12 20:44:28 +10:00
parent e92cfd448e
commit 668d4d994e
2 changed files with 12 additions and 11 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
__pycache__/ __pycache__/
DB_BACKUP/ DB_BACKUP/
static/ static/
gunicorn.*

22
main.py
View File

@@ -21,6 +21,8 @@ app = Flask(__name__)
# local DB conn string # local DB conn string
if os.environ['FLASK_ENV'] == "production": if os.environ['FLASK_ENV'] == "production":
DB_URL = 'postgresql+psycopg2://ddp:blahdeblah@bookdb:5432/library' DB_URL = 'postgresql+psycopg2://ddp:blahdeblah@bookdb:5432/library'
elif os.environ['FLASK_ENV'] == "development":
DB_URL = 'postgresql+psycopg2://ddp:blahdeblah@bookdb_dev:5432/library'
else: else:
DB_URL = 'postgresql+psycopg2://ddp:blahdeblah@127.0.0.1:55432/library' DB_URL = 'postgresql+psycopg2://ddp:blahdeblah@127.0.0.1:55432/library'
@@ -680,29 +682,27 @@ def book(id):
child_book.blurb=book.blurb child_book.blurb=book.blurb
# if removing_series has something in it, then handle it # if removing_series has something in it, then handle it
if (len(removing_series) > 0) and (book.IsChild() or (book.IsParent() and not still_in_series)): if book.IsChild() or (book.IsParent() and not still_in_series):
print ("okay should raise DBox")
print ("{}".format( removing_series ))
print (f"still_in_series={still_in_series}" )
if book.IsParent(): if book.IsParent():
CheckSeriesChange={'type':'parent', 'pid': book.id, 'bid': book.id, 'removing_series': removing_series } CheckSeriesChange={'type':'parent', 'pid': book.id, 'bid': book.id, 'removing_series': removing_series }
else: else:
CheckSeriesChange={'type':'child', 'pid': book.parent[0].id, 'bid': book.id, 'removing_series': removing_series } CheckSeriesChange={'type':'child', 'pid': book.parent[0].id, 'bid': book.id, 'removing_series': removing_series }
else: else:
# delete all bsls # delete all bsls
with db.engine.connect() as conn: Book_Series_Link.query.filter(Book_Series_Link.book_id == book.id ).delete()
conn.exec_driver_sql( "delete from book_series_link where book_id = {}".format( book.id ) )
cnt=1 cnt=1
for field in request.form: for field in request.form:
if 'bsl-book_id-' in field and field != 'bsl-book_id-NUM': if 'bsl-book_id-' in field and field != 'bsl-book_id-NUM':
cnt=int(re.findall( '\d+', field )[0]) cnt=int(re.findall( '\d+', field )[0])
if book.IsParent(): if book.IsParent():
sql="insert into book_series_link (book_id, series_id) values ( {}, {} )".format( request.form['bsl-book_id-{}'.format(cnt)], request.form['bsl-series_id-{}'.format(cnt)] ) newbsl=Book_Series_Link( book_id=request.form[f'bsl-book_id-{cnt}'],
series_id=request.form[f'bsl-series_id-{cnt}'] )
else: else:
sql="insert into book_series_link (book_id, series_id, book_num) values ( {}, {}, {} )".format( request.form['bsl-book_id-{}'.format(cnt)], request.form['bsl-series_id-{}'.format(cnt)], request.form['bsl-book_num-{}'.format(cnt)]) newbsl=Book_Series_Link( book_id=request.form[f'bsl-book_id-{cnt}'],
with db.engine.connect() as conn: series_id=request.form[f'bsl-series_id-{cnt}'],
conn.exec_driver_sql( sql ) book_num=request.form[f'bsl-book_num-{cnt}'] )
db.session.add(newbsl)
db.session.commit() db.session.commit()
# reset rating on this series as the book has changed (and maybe the rating has changed) # reset rating on this series as the book has changed (and maybe the rating has changed)
for field in request.form: for field in request.form: