diff --git a/.gitignore b/.gitignore index 06e8ba4a0..9d5c1fd1f 100644 --- a/.gitignore +++ b/.gitignore @@ -39,7 +39,6 @@ docs/reference/apidoc/_autosummary # project -configs.py buildingmotif-app/node_modules/ **/BuildingMOTIF.log *.db diff --git a/buildingmotif/api/Dockerfile b/buildingmotif/api/Dockerfile index 4b32bba5e..00a7e4364 100644 --- a/buildingmotif/api/Dockerfile +++ b/buildingmotif/api/Dockerfile @@ -3,7 +3,6 @@ FROM python:3.8 # Copy project ADD buildingmotif /opt/buildingmotif ADD libraries /opt/libraries -COPY configs.py /opt/ ADD migrations /opt/migrations COPY alembic.ini /opt/ COPY pyproject.toml /opt/ diff --git a/buildingmotif/api/app.py b/buildingmotif/api/app.py index 3ae580343..00659a0d2 100644 --- a/buildingmotif/api/app.py +++ b/buildingmotif/api/app.py @@ -70,10 +70,7 @@ def create_app(DB_URI): """Run API.""" db_uri = os.getenv("DB_URI") if db_uri is None: - # If config doesn't exist, this is considered a third party import and module cant be found. - import configs as building_motif_configs # type: ignore # isort:skip - - db_uri = building_motif_configs.DB_URI + raise ValueError("Environment variable DB_URI not set.") app = create_app(db_uri) app.run(debug=True, host="0.0.0.0", threaded=False) diff --git a/buildingmotif/bin/cli.py b/buildingmotif/bin/cli.py index 642c64527..ef8d093df 100644 --- a/buildingmotif/bin/cli.py +++ b/buildingmotif/bin/cli.py @@ -47,16 +47,6 @@ def get_db_uri(args) -> str: if db_uri is not None: return db_uri db_uri = getenv("DB_URI") - if db_uri is not None: - return db_uri - try: - import configs as building_motif_configs - except ImportError: - print("No DB URI could be found") - print("No configs.py file found") - subcommands[args.func].print_help() - sys.exit(1) - db_uri = building_motif_configs.DB_URI if db_uri is not None: return db_uri print("No DB URI could be found") @@ -97,7 +87,7 @@ def load(args): Loads libraries from (1) local directories (--dir), (2) local or remote ontology files (--ont) (3) library spec file (--libraries): the provided YML file into the - BuildingMOTIF instance at $DB_URI or whatever is in 'configs.py'. + BuildingMOTIF instance at $DB_URI. Use 'get_default_libraries_yml' for the format of the expected libraries.yml file """ db_uri = get_db_uri(args) diff --git a/configs.py.dist b/configs.py.dist deleted file mode 100644 index f7cfd8877..000000000 --- a/configs.py.dist +++ /dev/null @@ -1 +0,0 @@ -DB_URI = "" \ No newline at end of file diff --git a/docs/reference/cli_tool.md b/docs/reference/cli_tool.md index 423055411..b56f87cd5 100644 --- a/docs/reference/cli_tool.md +++ b/docs/reference/cli_tool.md @@ -23,8 +23,7 @@ Recall that a `Library` is a unit of distribution for shapes (for validation of ```bash usage: buildingmotif load [-h] [-d DB] [--dir DIR [DIR ...]] [-o ONT [ONT ...]] [-l LIBRARY_MANIFEST_FILE [LIBRARY_MANIFEST_FILE ...]] -Loads libraries from (1) local directories (--dir), (2) local or remote ontology files (--ont) (3) library spec file (--libraries): the provided YML file into the BuildingMOTIF instance at $DB_URI or whatever -is in 'configs.py'. Use 'get_default_libraries_yml' for the format of the expected libraries.yml file +Loads libraries from (1) local directories (--dir), (2) local or remote ontology files (--ont), or (3) library spec file (--libraries): the provided YML file into the BuildingMOTIF instance at $DB_URI optional arguments: -h, --help show this help message and exit diff --git a/docs/reference/developer_documentation.md b/docs/reference/developer_documentation.md index b8d9a0b06..440266182 100644 --- a/docs/reference/developer_documentation.md +++ b/docs/reference/developer_documentation.md @@ -21,12 +21,10 @@ ## Developing -To initialize your database, create your local configs file, enter your db uri, and run the migrations. +### Database +Initialize a database by setting it in the `.env` file, then run the migrations. Note for Windows users, the following commands require a Unix shell, e.g. Bash. ``` -cp configs.py.dist configs.py - -echo "DB_URI = 'sqlite:////path/to/db.db'" > configs.py - +set -o allexport; source .env; set +o allexport poetry run alembic upgrade head ``` diff --git a/migrations/env.py b/migrations/env.py index bed498fc7..937c65e51 100644 --- a/migrations/env.py +++ b/migrations/env.py @@ -10,19 +10,15 @@ _custom_json_serializer, ) -# If config doesn't exist, this is considered a third party import and module cant be found. -import configs as building_motif_configs # type: ignore # isort:skip - # this is the Alembic Config object, which provides # access to the values within the .ini file in use. config = context.config -# custom url from configs. Prioritize OS environment variable +# custom url from environment variable db_uri = os.getenv("DB_URI") -if db_uri is not None: - config.set_main_option("sqlalchemy.url", db_uri) -else: - config.set_main_option("sqlalchemy.url", building_motif_configs.DB_URI) +if db_uri is None: + raise ValueError("envvar DB_URI not set.") +config.set_main_option("sqlalchemy.url", db_uri) # Interpret the config file for Python logging. # This line sets up loggers basically.