From f5e7c358761ee49da45933e73b943fb1eb66c030 Mon Sep 17 00:00:00 2001 From: Leon Sandøy Date: Sun, 15 Apr 2018 18:47:58 +0200 Subject: Initial data for tables and refactoring the dev-mode database handling to be similar to prod-mode. (#53) * Changed the dev-mode logic to be the same as prod for creating new tables if they don't exist. Also added a new feature where a table can be initialized with data if you create a JSON file in the pysite/database/table_init/ folder and fill it with a list of dicts where each dict represents a row in your table. Included a hiphoppers json so that I can actually test if it works in production. It will only init the table if the table is empty. * Not sure if this will solve it, but I think so. * Renamed the tables and primary keys, and alphabetized the dict. Now complies with the gdudes holy wishes. --- gunicorn_config.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'gunicorn_config.py') diff --git a/gunicorn_config.py b/gunicorn_config.py index f863edd4..5b9f9055 100644 --- a/gunicorn_config.py +++ b/gunicorn_config.py @@ -12,6 +12,16 @@ def when_ready(server=None): from pysite.database import RethinkDB db = RethinkDB(loop_type=None) + db.conn = db.get_connection() + + # Create any table that doesn't exist created = db.create_tables() + if created: + tables = ", ".join([f"{table}" for table in created]) + output(f"Created the following tables: {tables}") - output(f"Created {created} tables.") + # Init the tables that require initialization + initialized = db.init_tables() + if initialized: + tables = ", ".join([f"{table} ({count} items)" for table, count in initialized.items()]) + output(f"Initialized the following tables: {tables}") -- cgit v1.2.3