Explorar o código

Make db_url optional (#402)

Wazarr %!s(int64=2) %!d(string=hai) anos
pai
achega
6c2f4deb70
Modificáronse 4 ficheiros con 15 adicións e 4 borrados
  1. 7 2
      docker-example/README.md
  2. 2 1
      pynecone/app.py
  3. 1 1
      pynecone/config.py
  4. 5 0
      pynecone/model.py

+ 7 - 2
docker-example/README.md

@@ -1,10 +1,13 @@
 # Pynecone Container Image Build
+
 This example describes how to create and use a container image for Pynecone with your own code.
 
 ## Update Requirements
+
 The `requirements.txt` includes the pynecone-io package which is need to install Pynecone framework. If you use additional packages in your project you have add this in the `requirements.txt` first. Copy the `Dockerfile` and the `requirements.txt` file in your project folder.
 
 ## Customize Pynecone Config
+
 The `pcconfig.py` includes the configuration of your Pynecone service. Edit the file like the following configuration. If you want to use a custom database you can set the endpoint in this file.
 
 ```python
@@ -18,7 +21,8 @@ config = pc.Config(
 )
 ```
 
-## Build Pyonecone Container Image
+## Build Pynecone Container Image
+
 To build your container image run the following command:
 
 ```bash
@@ -26,8 +30,9 @@ docker build -t pynecone-project:latest .
 ```
 
 ## Start Container Service
+
 Finally, you can start your Pynecone container service as follows:
 
 ```bash
 docker run -d -p 3000:3000 -p 8000:8000 --name pynecone pynecone:latest
-```
+```

+ 2 - 1
pynecone/app.py

@@ -302,7 +302,8 @@ class App(Base):
             return
 
         # Create the database models.
-        Model.create_all()
+        if config.db_url is not None:
+            Model.create_all()
 
         # Empty the .web pages directory
         compiler.purge_web_pages_dir()

+ 1 - 1
pynecone/config.py

@@ -22,7 +22,7 @@ class Config(Base):
     api_url: str = constants.API_URL
 
     # The database url.
-    db_url: str = constants.DB_URL
+    db_url: Optional[str] = constants.DB_URL
 
     # The redis url.
     redis_url: Optional[str] = None

+ 5 - 0
pynecone/model.py

@@ -11,8 +11,13 @@ def get_engine():
 
     Returns:
         The database engine.
+
+    Raises:
+        ValueError: If the database url is None.
     """
     url = utils.get_config().db_url
+    if url is None:
+        raise ValueError("No database url in config")
     return sqlmodel.create_engine(url, echo=False)