From d3c3174ba4139bcbbecfaf9f3f675fcf9ecd59cd Mon Sep 17 00:00:00 2001 From: Jeremy <77499225+jqwez@users.noreply.github.com> Date: Sun, 12 Feb 2023 01:58:17 +0000 Subject: [PATCH] Update models on pc run --no-frontend (#516) --- pynecone/app.py | 5 ----- pynecone/utils.py | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/pynecone/app.py b/pynecone/app.py index cbec551f2..e98c2c5ce 100644 --- a/pynecone/app.py +++ b/pynecone/app.py @@ -12,7 +12,6 @@ from pynecone.compiler import utils as compiler_utils from pynecone.components.component import Component, ComponentStyle from pynecone.event import Event, EventHandler from pynecone.middleware import HydrateMiddleware, Middleware -from pynecone.model import Model from pynecone.state import DefaultState, Delta, State, StateManager, StateUpdate # Define custom types. @@ -313,10 +312,6 @@ class App(Base): print("Skipping compilation in non-dev mode.") return - # Create the database models. - if config.db_url is not None: - Model.create_all() - # Empty the .web pages directory compiler.purge_web_pages_dir() diff --git a/pynecone/utils.py b/pynecone/utils.py index 030504b49..93ac514a8 100644 --- a/pynecone/utils.py +++ b/pynecone/utils.py @@ -49,6 +49,7 @@ if TYPE_CHECKING: from pynecone.components.component import ImportDict from pynecone.config import Config from pynecone.event import Event, EventHandler, EventSpec + from pynecone.model import Model from pynecone.var import Var # Shorthand for join. @@ -714,6 +715,15 @@ def change_or_terminate_port(port, _type) -> str: sys.exit() +def setup_backend(): + """Sets up backend. Specifically ensures backend + database is updated when running --no-frontend. + """ + config = get_config() + if config.db_url is not None: + Model.create_all() + + def run_backend( app_name: str, port: int, loglevel: constants.LogLevel = constants.LogLevel.ERROR ): @@ -724,6 +734,8 @@ def run_backend( port: The app port loglevel: The log level. """ + setup_backend() + uvicorn.run( f"{app_name}:{constants.APP_VAR}.{constants.API_VAR}", host=constants.BACKEND_HOST, @@ -743,6 +755,8 @@ def run_backend_prod( port: The app port loglevel: The log level. """ + setup_backend() + num_workers = get_num_workers() command = constants.RUN_BACKEND_PROD + [ "--bind",