Prechádzať zdrojové kódy

Update models on pc run --no-frontend (#516)

Jeremy 2 rokov pred
rodič
commit
d3c3174ba4
2 zmenil súbory, kde vykonal 14 pridanie a 5 odobranie
  1. 0 5
      pynecone/app.py
  2. 14 0
      pynecone/utils.py

+ 0 - 5
pynecone/app.py

@@ -12,7 +12,6 @@ from pynecone.compiler import utils as compiler_utils
 from pynecone.components.component import Component, ComponentStyle
 from pynecone.components.component import Component, ComponentStyle
 from pynecone.event import Event, EventHandler
 from pynecone.event import Event, EventHandler
 from pynecone.middleware import HydrateMiddleware, Middleware
 from pynecone.middleware import HydrateMiddleware, Middleware
-from pynecone.model import Model
 from pynecone.state import DefaultState, Delta, State, StateManager, StateUpdate
 from pynecone.state import DefaultState, Delta, State, StateManager, StateUpdate
 
 
 # Define custom types.
 # Define custom types.
@@ -313,10 +312,6 @@ class App(Base):
             print("Skipping compilation in non-dev mode.")
             print("Skipping compilation in non-dev mode.")
             return
             return
 
 
-        # Create the database models.
-        if config.db_url is not None:
-            Model.create_all()
-
         # Empty the .web pages directory
         # Empty the .web pages directory
         compiler.purge_web_pages_dir()
         compiler.purge_web_pages_dir()
 
 

+ 14 - 0
pynecone/utils.py

@@ -49,6 +49,7 @@ if TYPE_CHECKING:
     from pynecone.components.component import ImportDict
     from pynecone.components.component import ImportDict
     from pynecone.config import Config
     from pynecone.config import Config
     from pynecone.event import Event, EventHandler, EventSpec
     from pynecone.event import Event, EventHandler, EventSpec
+    from pynecone.model import Model
     from pynecone.var import Var
     from pynecone.var import Var
 
 
 # Shorthand for join.
 # Shorthand for join.
@@ -714,6 +715,15 @@ def change_or_terminate_port(port, _type) -> str:
         sys.exit()
         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(
 def run_backend(
     app_name: str, port: int, loglevel: constants.LogLevel = constants.LogLevel.ERROR
     app_name: str, port: int, loglevel: constants.LogLevel = constants.LogLevel.ERROR
 ):
 ):
@@ -724,6 +734,8 @@ def run_backend(
         port: The app port
         port: The app port
         loglevel: The log level.
         loglevel: The log level.
     """
     """
+    setup_backend()
+
     uvicorn.run(
     uvicorn.run(
         f"{app_name}:{constants.APP_VAR}.{constants.API_VAR}",
         f"{app_name}:{constants.APP_VAR}.{constants.API_VAR}",
         host=constants.BACKEND_HOST,
         host=constants.BACKEND_HOST,
@@ -743,6 +755,8 @@ def run_backend_prod(
         port: The app port
         port: The app port
         loglevel: The log level.
         loglevel: The log level.
     """
     """
+    setup_backend()
+
     num_workers = get_num_workers()
     num_workers = get_num_workers()
     command = constants.RUN_BACKEND_PROD + [
     command = constants.RUN_BACKEND_PROD + [
         "--bind",
         "--bind",