diff --git a/.devcontainer/container/commands/import.sh b/.devcontainer/container/commands/import.sh deleted file mode 100755 index f20d414..0000000 --- a/.devcontainer/container/commands/import.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -cd .devcontainer/data - -tar xvfz library.tgz - -mongorestore --uri mongodb://localhost:27017/library --username admin --password mongodb --drop --authenticationDatabase=admin library - -cd ../.. diff --git a/.devcontainer/create-library-user.js b/.devcontainer/create-library-user.js new file mode 100644 index 0000000..b201147 --- /dev/null +++ b/.devcontainer/create-library-user.js @@ -0,0 +1,13 @@ +use library + +db.createUser({ + user: "admin", + pwd: "mongodb", + roles: [ + { role: "userAdminAnyDatabase", db: "admin" }, + { role: "dbOwner", db: "library" }, + { role: "readWrite", db: "library" } + ] +}); + +print("User 'admin' created in 'library' database."); diff --git a/.devcontainer/create-library-user.sh b/.devcontainer/create-library-user.sh new file mode 100644 index 0000000..0e502b8 --- /dev/null +++ b/.devcontainer/create-library-user.sh @@ -0,0 +1,2 @@ +# we create a user to be able to import data into MongoDB +mongosh .devcontainer/create-library-user.js \ No newline at end of file diff --git a/.devcontainer/data/library.tgz b/.devcontainer/data/library.tgz deleted file mode 100644 index b02824d..0000000 Binary files a/.devcontainer/data/library.tgz and /dev/null differ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 884c664..d47e3f5 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -12,15 +12,16 @@ }, "containerEnv": { "MONGODB_URI": "mongodb://admin:mongodb@localhost:27017/" - }, - "postCreateCommand": "", + }, + "postAttachCommand": "sh .devcontainer/create-library-user.sh", "customizations": { - "codespaces": {"openFiles": []}, + "codespaces": { + "openFiles": [ + "README.md" + ] + }, "vscode": { "extensions": [ - "ms-python.python", - "ms-toolsai.jupyter", - "ms-tools.vscode-jupyter", "mongodb.mongodb-vscode" ] } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 743fef5..d28868a 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -17,7 +17,7 @@ services: network_mode: service:mongodb migrator: - image: public.ecr.aws/v4d7k6c9/relational-migrator:1.13.2 + image: public.ecr.aws/v4d7k6c9/relational-migrator:1.14.0 ports: - "8080:8080" depends_on: diff --git a/.vscode/settings.json b/.vscode/settings.json index 35c4a9f..e84a8eb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,8 @@ { "mdb.presetConnections": [ { - "name": "mongodb container", - "connectionString": "mongodb://admin:mongodb@localhost:27017" + "name": "MongoDB destination container", + "connectionString": "mongodb://admin:mongodb@mongodb:27017" } ] } \ No newline at end of file diff --git a/README.md b/README.md index 2654d63..51a8c7d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Workshop instructions -You can access the lab [here](https://mdb.link/rm-workshop) +You can access the lab instructions [here](https://mdb.link/rm-workshop) ## Database connection @@ -11,3 +11,11 @@ This codespace runs a `mongodb-local` image, you can connect to it from the VS C ``` mongodb://admin:mongodb@mongodb:27017/ ``` + +## Launch Relational Migrator + +Open the codespace URL with port `8080` in your browser. +To import, use this MongoDB Connection string: +``` +mongodb://admin:mongodb@mongodb:27017/library?authSource=admin +```