Get info, set storage & delete an instance#
import lamindb as ln
πΆ You haven't yet setup an instance using the CLI: Please call `ln.setup.init()` or `ln.setup.load()`
Get info#
ln.setup.load("mydata")
π¬ Found cached instance metadata: /home/runner/.lamin/testuser1-instance-mydata.env
β
Loaded instance: testuser1/mydata
'migrate-unnecessary'
ln.setup.info() # CLI: lamin info
Current user: testuser1
- handle: testuser1
- email: testuser1@lamin.ai
- id: DzTjkKse
Current instance: testuser1/mydata
- owner: testuser1
- name: mydata
- storage root: /home/runner/work/lndb/lndb/docs/guide/mydata_new_loc
- storage region: None
- db: sqlite:////home/runner/work/lndb/lndb/docs/guide/mydata_new_loc/mydata.lndb
- schema: set()
Set storage#
Show code cell content
import laminci
pgurl = laminci.db.setup_local_test_postgres()
π¬ Created Postgres test instance: 'postgresql://postgres:pwd@0.0.0.0:5432/pgtest'
It runs in docker container 'pgtest'
ln.setup.init(storage="./storage_1", db=pgurl)
πΆ Instance metadata exists, but DB might have been corrupted or deleted. Re-initializing the DB.
π¬ Not registering instance on hub, if you want, call `lamin register`
π¬ Loading schema modules: core==0.34.0
β
Loaded instance: testuser1/pgtest
β
Created & loaded instance: testuser1/pgtest
Local storage:
ln.setup.set.storage("./storage_2") # CLI: lamin set --storage ./storage_2
β
Set storage ./storage_2
Show code cell content
from pathlib import Path
assert ln.setup.settings.storage.root_as_str == f"{Path.cwd()}/storage_2"
Cloud storage:
ln.setup.set.storage("s3://lndb-setup-ci") # lamin set --storage s3://lndb-setup-ci
β
Set storage s3://lndb-setup-ci
See an overview:
ln.select(ln.Storage).df()
root | type | region | created_at | updated_at | created_by_id | |
---|---|---|---|---|---|---|
id | ||||||
CptR36rQ | /home/runner/work/lndb/lndb/docs/guide/storage_1 | local | None | 2023-05-30 15:20:10.544066 | None | None |
WPjTUnoA | /home/runner/work/lndb/lndb/docs/guide/storage_2 | local | None | 2023-05-30 15:20:10.598843 | None | None |
Py0joCVn | s3://lndb-setup-ci | s3 | None | 2023-05-30 15:20:10.640329 | None | None |
Show code cell content
assert ln.setup.settings.storage.is_cloud
assert ln.setup.settings.storage.root_as_str == "s3://lndb-setup-ci"
# root.fs contains the underlying fsspec filesystem
assert (
ln.setup.settings.storage.root.fs.cache_regions # set by lamindb to True for s3 by default
)
You can set any additional fsspec
filesystem arguments for cloud storage, such as profile
or cache_regions
(for s3 only), for example:
ln.setup.set.storage("s3://lndb-setup-ci", cache_regions=False)
β
Set storage s3://lndb-setup-ci
Show code cell content
# test cache_regions
assert not ln.setup.settings.storage.root.fs.cache_regions
# test setting storage not by owner
ln.setup.login(
"testuser2@lamin.ai", password="goeoNJKE61ygbz1vhaCVynGERaRrlviPBVQsjkhz"
)
ln.setup.set.storage("./storage_3")
assert ln.setup.settings.storage.root_as_str == f"{Path.cwd()}/storage_3"
!docker stop pgtest && docker rm pgtest
β
Logged in with handle testuser2 and id bKeW4T6E
β
Set storage ./storage_3
pgtest
pgtest
Currently not possible: setting storage for SQLite instance#
ln.setup.login("testuser1")
ln.setup.load("mydata")
β
Logged in with email testuser1@lamin.ai and id DzTjkKse
πΆ Connection postgresql://postgres:pwd@0.0.0.0:5432/pgtest not reachable
π¬ Consider closing the instance: `lamin close`
π¬ Found cached instance metadata: /home/runner/.lamin/testuser1-instance-mydata.env
β
Loaded instance: testuser1/mydata
'migrate-unnecessary'
If you try to set the storage for an sqlite instance, an error message is returned:
assert ln.setup.set.storage("mydata_storage_2") == "set-storage-failed"
β Can't set storage for sqlite instances.
Delete an instance#
With local default storage#
ln.setup.init(storage="mydata-delete")
π¬ Not registering instance on hub, if you want, call `lamin register`
π¬ Loading schema modules: core==0.34.0
β
Loaded instance: testuser1/mydata-delete
β
Created & loaded instance: testuser1/mydata-delete
ln.setup.delete("mydata-delete") # CLI: lamin delete mydata
π¬ Deleting instance testuser1/mydata-delete
π¬ instance settings '.env' deleted
π¬ current instance settings /home/runner/.lamin/current_instance.env deleted
π¬ consider deleting your stored data manually: /home/runner/work/lndb/lndb/docs/guide/mydata-delete
π¬ deleted '.lndb' sqlite file
Show code cell content
from lndb.dev._settings_store import instance_settings_file
settings_file = instance_settings_file("mydata-delete", "testuser1")
assert settings_file.exists() == False
With remote default storage#
ln.setup.init(storage="s3://lndb-setup-delete-ci")
2023-05-30 15:20:17,163:INFO - Found credentials in environment variables.
πΆ SQLite file s3://lndb-setup-delete-ci/lndb-setup-delete-ci.lndb does not exist
πΆ Instance metadata exists, but DB might have been corrupted or deleted. Re-initializing the DB.
2023-05-30 15:20:19,284:INFO - Found credentials in environment variables.
β
Registered instance on hub: https://lamin.ai/testuser1/None
π¬ Loading schema modules: core==0.34.0
β
Loaded instance: testuser1/lndb-setup-delete-ci
β
Created & loaded instance: testuser1/lndb-setup-delete-ci
ln.setup.delete("lndb-setup-delete-ci")
π¬ Deleting instance testuser1/lndb-setup-delete-ci
π¬ instance settings '.env' deleted
π¬ current instance settings /home/runner/.lamin/current_instance.env deleted
π¬ instance cache deleted
π¬ consider deleting your stored data manually: s3://lndb-setup-delete-ci/
π¬ deleted '.lndb' sqlite file
π¬ please manually delete your remote instance on lamin.ai