Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
feat: TT-292 The code was modified to have a persistent database
  • Loading branch information
PieritoAlva95 committed Jul 16, 2021
commit 942cf12168f81eb9ef3ea485c1001c48d5e66e9d
63 changes: 34 additions & 29 deletions cosmosdb-emulator/init_emulator_db.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
from azure.cosmos import exceptions, CosmosClient, PartitionKey
import os, sys, json

with open('/usr/src/app/cosmosdb-emulator/seed_database.json') as database_file:
seed_database=json.load(database_file)
import os, sys

sys.path.append("/usr/src/app")

Expand All @@ -23,42 +20,50 @@

try:
print('- Project')
from time_tracker_api.projects.projects_model import container_definition as project_definition
project_container=database.create_container_if_not_exists(**project_definition)
for project in seed_database['projects']:
project_container.create_item(body=project)
from time_tracker_api.projects.projects_model import (
container_definition as project_definition,
)

database.create_container_if_not_exists(**project_definition)

print('- Project type')
from time_tracker_api.project_types.project_types_model import container_definition as project_type_definition
project_type_container=database.create_container_if_not_exists(**project_type_definition)
for project_type in seed_database['project_types']:
project_type_container.create_item(body=project_type)
from time_tracker_api.project_types.project_types_model import (
container_definition as project_type_definition,
)

database.create_container_if_not_exists(**project_type_definition)

print('- Activity')
from time_tracker_api.activities.activities_model import container_definition as activity_definition
activity_container=database.create_container_if_not_exists(**activity_definition)
for activity in seed_database['activities']:
activity_container.create_item(body=activity)
from time_tracker_api.activities.activities_model import (
container_definition as activity_definition,
)

database.create_container_if_not_exists(**activity_definition)

print('- Customer')
from time_tracker_api.customers.customers_model import container_definition as customer_definition
customer_container=database.create_container_if_not_exists(**customer_definition)
for customer in seed_database['customers']:
customer_container.create_item(body=customer)
from time_tracker_api.customers.customers_model import (
container_definition as customer_definition,
)

database.create_container_if_not_exists(**customer_definition)

print('- Time entry')
from time_tracker_api.time_entries.time_entries_model import container_definition as time_entry_definition
time_entry_container=database.create_container_if_not_exists(**time_entry_definition)
for time_entry in seed_database['time_entries']:
time_entry_container.create_item(body=time_entry)
from time_tracker_api.time_entries.time_entries_model import (
container_definition as time_entry_definition,
)

database.create_container_if_not_exists(**time_entry_definition)

print('- Technology')
from time_tracker_api.technologies.technologies_model import container_definition as technologies_definition
from time_tracker_api.technologies.technologies_model import (
container_definition as technologies_definition,
)

database.create_container_if_not_exists(**technologies_definition)
except exceptions.CosmosResourceExistsError as e:
print("Unexpected error while creating initial database schema: %s" % e.message)

database_file.close()
print(
"Unexpected error while creating initial database schema: %s"
% e.message
)

print("Done!")

3 changes: 3 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ services:
image: 'mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator'
tty: true
mem_limit: 3GB
cpu_count: 2
restart: always
ports:
- '8081:8081'
- '10251:10251'
Expand All @@ -35,6 +37,7 @@ services:
- '10254:10254'
environment:
- AZURE_COSMOS_EMULATOR_PARTITION_COUNT=7
- AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true
- AZURE_COSMOS_EMULATOR_ARGS=/alternativenames=azurecosmosemulator

# networks:
Expand Down