Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ NEW: Add SqliteTempBackend #5448

Merged
merged 7 commits into from
Apr 25, 2022

Conversation

chrisjsewell
Copy link
Member

@chrisjsewell chrisjsewell commented Mar 15, 2022

As mentioned in the docstrings, the point of this backend is for testing and tutorial purposes, to allow for a profile to be created/loaded "on-the-fly", with an empty/transient storage backend, that does not require PostGreSQL, and does not require any cleanup.

You could use this similar to https://aiida.readthedocs.io/projects/aiida-core/en/develop/howto/archive_profile.html, BUT without the need for even having an archive file, or worrying about migrations. For example:

In [1]: from aiida import orm, load_profile, get_profile
In [2]: from aiida.storage.sqlite_temp import SqliteTempBackend
In [3]: load_profile(SqliteTempBackend.create_profile('other', sandbox_path='_sandbox'))
Out[3]: <aiida.manage.configuration.profile.Profile at 0x7fa0ef402f40>
In [4]: orm.QueryBuilder().append(orm.Node).count()
Out[4]: 0
In [5]: node = orm.Dict({"a": 1})
In [6]: node.repo.put_object_from_bytes(b'a', 'a')
In [7]: node.store()
In [8]: orm.QueryBuilder().append(orm.Node).count()
Out[8]: 1
In [9]: node.repo.get_object_content('a')
Out[9]: 'a'
In [10]: node.repo.get_object('a')
Out[10]: File<name=a, file_type=1, key=f72dd680-7019-4620-8ea2-960bbc4317a9, objects=dict_items([])>
In [11]: ls _sandbox/sandbox/tmpy48ilold/
f72dd680-7019-4620-8ea2-960bbc4317a9

The database is an in-memory SQLite one, as is used in the sqlalchemy tutorials: https://sqla-tutorials-nb.readthedocs.io/en/latest/engine.html, the repo is a SandboxRepositoryBackend

This also improves the SqliteZipBackend, in particular, how it re-uses the SqlaModelEntity of the PsqlDosBackend (but adapted for SQLite)

@chrisjsewell
Copy link
Member Author

chrisjsewell commented Mar 16, 2022

You can also set up debugging, to print all the calls to the database 😄

In [1]: from aiida import orm, load_profile, get_profile
In [2]: from aiida.storage.sqlite_temp import SqliteTempBackend
In [3]: load_profile(SqliteTempBackend.create_profile('other', sandbox_path='_sandbox', debug=True))
Out[3]: <aiida.manage.configuration.profile.Profile at 0x7fcdb2562a90>
In [4]: orm.QueryBuilder().append(orm.Node).count()
2022-03-16 14:40:22,517 INFO sqlalchemy.engine.Engine BEGIN (implicit)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] BEGIN (implicit)
2022-03-16 14:40:22,517 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dbcomputer")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dbcomputer")
2022-03-16 14:40:22,517 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,520 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dbcomputer")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dbcomputer")
2022-03-16 14:40:22,520 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,520 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dbsetting")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dbsetting")
2022-03-16 14:40:22,520 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,521 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dbsetting")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dbsetting")
2022-03-16 14:40:22,521 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,521 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dbuser")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dbuser")
2022-03-16 14:40:22,521 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,521 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dbuser")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dbuser")
2022-03-16 14:40:22,522 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,522 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dbauthinfo")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dbauthinfo")
2022-03-16 14:40:22,522 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,522 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dbauthinfo")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dbauthinfo")
2022-03-16 14:40:22,523 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,523 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dbgroup")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dbgroup")
2022-03-16 14:40:22,523 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,523 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dbgroup")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dbgroup")
2022-03-16 14:40:22,524 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,529 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dbnode")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dbnode")
2022-03-16 14:40:22,530 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,530 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dbnode")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dbnode")
2022-03-16 14:40:22,531 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,531 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dbcomment")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dbcomment")
2022-03-16 14:40:22,532 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,532 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dbcomment")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dbcomment")
2022-03-16 14:40:22,533 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,533 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dbgroup_dbnodes")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dbgroup_dbnodes")
2022-03-16 14:40:22,533 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,534 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dbgroup_dbnodes")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dbgroup_dbnodes")
2022-03-16 14:40:22,534 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,534 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dblink")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dblink")
2022-03-16 14:40:22,534 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,535 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dblink")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dblink")
2022-03-16 14:40:22,535 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,535 INFO sqlalchemy.engine.Engine PRAGMA main.table_info("db_dblog")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA main.table_info("db_dblog")
2022-03-16 14:40:22,535 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,536 INFO sqlalchemy.engine.Engine PRAGMA temp.table_info("db_dblog")
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] PRAGMA temp.table_info("db_dblog")
2022-03-16 14:40:22,536 INFO sqlalchemy.engine.Engine [raw sql] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [raw sql] ()
2022-03-16 14:40:22,538 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dbcomputer (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        label VARCHAR(255) NOT NULL, 
        hostname VARCHAR(255) NOT NULL, 
        description TEXT NOT NULL, 
        scheduler_type VARCHAR(255) NOT NULL, 
        transport_type VARCHAR(255) NOT NULL, 
        metadata JSON NOT NULL, 
        CONSTRAINT db_dbcomputer_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbcomputer_uuid UNIQUE (uuid), 
        CONSTRAINT uq_db_dbcomputer_label UNIQUE (label)
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dbcomputer (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        label VARCHAR(255) NOT NULL, 
        hostname VARCHAR(255) NOT NULL, 
        description TEXT NOT NULL, 
        scheduler_type VARCHAR(255) NOT NULL, 
        transport_type VARCHAR(255) NOT NULL, 
        metadata JSON NOT NULL, 
        CONSTRAINT db_dbcomputer_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbcomputer_uuid UNIQUE (uuid), 
        CONSTRAINT uq_db_dbcomputer_label UNIQUE (label)
)


2022-03-16 14:40:22,539 INFO sqlalchemy.engine.Engine [no key 0.00133s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00133s] ()
2022-03-16 14:40:22,540 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dbsetting (
        id INTEGER NOT NULL, 
        "key" VARCHAR(1024) NOT NULL, 
        val JSON, 
        description TEXT NOT NULL, 
        time DATETIME NOT NULL, 
        CONSTRAINT db_dbsetting_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbsetting_key UNIQUE ("key")
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dbsetting (
        id INTEGER NOT NULL, 
        "key" VARCHAR(1024) NOT NULL, 
        val JSON, 
        description TEXT NOT NULL, 
        time DATETIME NOT NULL, 
        CONSTRAINT db_dbsetting_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbsetting_key UNIQUE ("key")
)


2022-03-16 14:40:22,541 INFO sqlalchemy.engine.Engine [no key 0.00029s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00029s] ()
2022-03-16 14:40:22,542 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dbuser (
        id INTEGER NOT NULL, 
        email VARCHAR(254) NOT NULL, 
        first_name VARCHAR(254) NOT NULL, 
        last_name VARCHAR(254) NOT NULL, 
        institution VARCHAR(254) NOT NULL, 
        CONSTRAINT db_dbuser_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbuser_email UNIQUE (email)
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dbuser (
        id INTEGER NOT NULL, 
        email VARCHAR(254) NOT NULL, 
        first_name VARCHAR(254) NOT NULL, 
        last_name VARCHAR(254) NOT NULL, 
        institution VARCHAR(254) NOT NULL, 
        CONSTRAINT db_dbuser_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbuser_email UNIQUE (email)
)


2022-03-16 14:40:22,542 INFO sqlalchemy.engine.Engine [no key 0.00022s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00022s] ()
2022-03-16 14:40:22,543 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dbauthinfo (
        id INTEGER NOT NULL, 
        aiidauser_id INTEGER NOT NULL, 
        dbcomputer_id INTEGER NOT NULL, 
        metadata JSON NOT NULL, 
        auth_params JSON NOT NULL, 
        enabled BOOLEAN NOT NULL, 
        CONSTRAINT db_dbauthinfo_pkey PRIMARY KEY (id), 
        CONSTRAINT fk_db_dbauthinfo_dbcomputer_id_db_dbcomputer FOREIGN KEY(dbcomputer_id) REFERENCES db_dbcomputer (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dbauthinfo_aiidauser_id_db_dbuser FOREIGN KEY(aiidauser_id) REFERENCES db_dbuser (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT uq_db_dbauthinfo_aiidauser_id_dbcomputer_id UNIQUE (aiidauser_id, dbcomputer_id)
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dbauthinfo (
        id INTEGER NOT NULL, 
        aiidauser_id INTEGER NOT NULL, 
        dbcomputer_id INTEGER NOT NULL, 
        metadata JSON NOT NULL, 
        auth_params JSON NOT NULL, 
        enabled BOOLEAN NOT NULL, 
        CONSTRAINT db_dbauthinfo_pkey PRIMARY KEY (id), 
        CONSTRAINT fk_db_dbauthinfo_dbcomputer_id_db_dbcomputer FOREIGN KEY(dbcomputer_id) REFERENCES db_dbcomputer (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dbauthinfo_aiidauser_id_db_dbuser FOREIGN KEY(aiidauser_id) REFERENCES db_dbuser (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT uq_db_dbauthinfo_aiidauser_id_dbcomputer_id UNIQUE (aiidauser_id, dbcomputer_id)
)


2022-03-16 14:40:22,550 INFO sqlalchemy.engine.Engine [no key 0.00661s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00661s] ()
2022-03-16 14:40:22,551 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbauthinfo_db_dbauthinfo_dbcomputer_id ON db_dbauthinfo (dbcomputer_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbauthinfo_db_dbauthinfo_dbcomputer_id ON db_dbauthinfo (dbcomputer_id)
2022-03-16 14:40:22,551 INFO sqlalchemy.engine.Engine [no key 0.00019s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00019s] ()
2022-03-16 14:40:22,551 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbauthinfo_db_dbauthinfo_aiidauser_id ON db_dbauthinfo (aiidauser_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbauthinfo_db_dbauthinfo_aiidauser_id ON db_dbauthinfo (aiidauser_id)
2022-03-16 14:40:22,552 INFO sqlalchemy.engine.Engine [no key 0.00015s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00015s] ()
2022-03-16 14:40:22,553 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dbgroup (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        label VARCHAR(255) NOT NULL, 
        type_string VARCHAR(255) NOT NULL, 
        time DATETIME NOT NULL, 
        description TEXT NOT NULL, 
        extras JSON NOT NULL, 
        user_id INTEGER NOT NULL, 
        CONSTRAINT db_dbgroup_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbgroup_uuid UNIQUE (uuid), 
        CONSTRAINT fk_db_dbgroup_user_id_db_dbuser FOREIGN KEY(user_id) REFERENCES db_dbuser (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT uq_db_dbgroup_label_type_string UNIQUE (label, type_string)
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dbgroup (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        label VARCHAR(255) NOT NULL, 
        type_string VARCHAR(255) NOT NULL, 
        time DATETIME NOT NULL, 
        description TEXT NOT NULL, 
        extras JSON NOT NULL, 
        user_id INTEGER NOT NULL, 
        CONSTRAINT db_dbgroup_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbgroup_uuid UNIQUE (uuid), 
        CONSTRAINT fk_db_dbgroup_user_id_db_dbuser FOREIGN KEY(user_id) REFERENCES db_dbuser (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT uq_db_dbgroup_label_type_string UNIQUE (label, type_string)
)


2022-03-16 14:40:22,561 INFO sqlalchemy.engine.Engine [no key 0.00826s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00826s] ()
2022-03-16 14:40:22,562 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbgroup_db_dbgroup_type_string ON db_dbgroup (type_string)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbgroup_db_dbgroup_type_string ON db_dbgroup (type_string)
2022-03-16 14:40:22,563 INFO sqlalchemy.engine.Engine [no key 0.00028s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00028s] ()
2022-03-16 14:40:22,563 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbgroup_db_dbgroup_label ON db_dbgroup (label)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbgroup_db_dbgroup_label ON db_dbgroup (label)
2022-03-16 14:40:22,564 INFO sqlalchemy.engine.Engine [no key 0.00027s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00027s] ()
2022-03-16 14:40:22,564 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbgroup_db_dbgroup_user_id ON db_dbgroup (user_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbgroup_db_dbgroup_user_id ON db_dbgroup (user_id)
2022-03-16 14:40:22,567 INFO sqlalchemy.engine.Engine [no key 0.00219s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00219s] ()
2022-03-16 14:40:22,568 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dbnode (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        node_type VARCHAR(255) NOT NULL, 
        process_type VARCHAR(255), 
        label VARCHAR(255) NOT NULL, 
        description TEXT NOT NULL, 
        ctime DATETIME NOT NULL, 
        mtime DATETIME NOT NULL, 
        attributes JSON, 
        extras JSON, 
        repository_metadata JSON NOT NULL, 
        dbcomputer_id INTEGER, 
        user_id INTEGER NOT NULL, 
        CONSTRAINT db_dbnode_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbnode_uuid UNIQUE (uuid), 
        CONSTRAINT fk_db_dbnode_user_id_db_dbuser FOREIGN KEY(user_id) REFERENCES db_dbuser (id) ON DELETE RESTRICT DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dbnode_dbcomputer_id_db_dbcomputer FOREIGN KEY(dbcomputer_id) REFERENCES db_dbcomputer (id) ON DELETE RESTRICT DEFERRABLE INITIALLY DEFERRED
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dbnode (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        node_type VARCHAR(255) NOT NULL, 
        process_type VARCHAR(255), 
        label VARCHAR(255) NOT NULL, 
        description TEXT NOT NULL, 
        ctime DATETIME NOT NULL, 
        mtime DATETIME NOT NULL, 
        attributes JSON, 
        extras JSON, 
        repository_metadata JSON NOT NULL, 
        dbcomputer_id INTEGER, 
        user_id INTEGER NOT NULL, 
        CONSTRAINT db_dbnode_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbnode_uuid UNIQUE (uuid), 
        CONSTRAINT fk_db_dbnode_user_id_db_dbuser FOREIGN KEY(user_id) REFERENCES db_dbuser (id) ON DELETE RESTRICT DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dbnode_dbcomputer_id_db_dbcomputer FOREIGN KEY(dbcomputer_id) REFERENCES db_dbcomputer (id) ON DELETE RESTRICT DEFERRABLE INITIALLY DEFERRED
)


2022-03-16 14:40:22,570 INFO sqlalchemy.engine.Engine [no key 0.00225s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00225s] ()
2022-03-16 14:40:22,571 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbnode_db_dbnode_process_type ON db_dbnode (process_type)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbnode_db_dbnode_process_type ON db_dbnode (process_type)
2022-03-16 14:40:22,571 INFO sqlalchemy.engine.Engine [no key 0.00018s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00018s] ()
2022-03-16 14:40:22,572 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbnode_db_dbnode_ctime ON db_dbnode (ctime)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbnode_db_dbnode_ctime ON db_dbnode (ctime)
2022-03-16 14:40:22,572 INFO sqlalchemy.engine.Engine [no key 0.00019s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00019s] ()
2022-03-16 14:40:22,573 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbnode_db_dbnode_mtime ON db_dbnode (mtime)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbnode_db_dbnode_mtime ON db_dbnode (mtime)
2022-03-16 14:40:22,574 INFO sqlalchemy.engine.Engine [no key 0.00156s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00156s] ()
2022-03-16 14:40:22,575 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbnode_db_dbnode_user_id ON db_dbnode (user_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbnode_db_dbnode_user_id ON db_dbnode (user_id)
2022-03-16 14:40:22,575 INFO sqlalchemy.engine.Engine [no key 0.00023s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00023s] ()
2022-03-16 14:40:22,576 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbnode_db_dbnode_label ON db_dbnode (label)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbnode_db_dbnode_label ON db_dbnode (label)
2022-03-16 14:40:22,576 INFO sqlalchemy.engine.Engine [no key 0.00023s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00023s] ()
2022-03-16 14:40:22,577 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbnode_db_dbnode_dbcomputer_id ON db_dbnode (dbcomputer_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbnode_db_dbnode_dbcomputer_id ON db_dbnode (dbcomputer_id)
2022-03-16 14:40:22,577 INFO sqlalchemy.engine.Engine [no key 0.00017s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00017s] ()
2022-03-16 14:40:22,577 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbnode_db_dbnode_node_type ON db_dbnode (node_type)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbnode_db_dbnode_node_type ON db_dbnode (node_type)
2022-03-16 14:40:22,577 INFO sqlalchemy.engine.Engine [no key 0.00017s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00017s] ()
2022-03-16 14:40:22,579 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dbcomment (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        dbnode_id INTEGER NOT NULL, 
        ctime DATETIME NOT NULL, 
        mtime DATETIME NOT NULL, 
        user_id INTEGER NOT NULL, 
        content TEXT NOT NULL, 
        CONSTRAINT db_dbcomment_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbcomment_uuid UNIQUE (uuid), 
        CONSTRAINT fk_db_dbcomment_dbnode_id_db_dbnode FOREIGN KEY(dbnode_id) REFERENCES db_dbnode (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dbcomment_user_id_db_dbuser FOREIGN KEY(user_id) REFERENCES db_dbuser (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dbcomment (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        dbnode_id INTEGER NOT NULL, 
        ctime DATETIME NOT NULL, 
        mtime DATETIME NOT NULL, 
        user_id INTEGER NOT NULL, 
        content TEXT NOT NULL, 
        CONSTRAINT db_dbcomment_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbcomment_uuid UNIQUE (uuid), 
        CONSTRAINT fk_db_dbcomment_dbnode_id_db_dbnode FOREIGN KEY(dbnode_id) REFERENCES db_dbnode (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dbcomment_user_id_db_dbuser FOREIGN KEY(user_id) REFERENCES db_dbuser (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED
)


2022-03-16 14:40:22,579 INFO sqlalchemy.engine.Engine [no key 0.00083s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00083s] ()
2022-03-16 14:40:22,580 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbcomment_db_dbcomment_dbnode_id ON db_dbcomment (dbnode_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbcomment_db_dbcomment_dbnode_id ON db_dbcomment (dbnode_id)
2022-03-16 14:40:22,581 INFO sqlalchemy.engine.Engine [no key 0.00025s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00025s] ()
2022-03-16 14:40:22,581 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbcomment_db_dbcomment_user_id ON db_dbcomment (user_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbcomment_db_dbcomment_user_id ON db_dbcomment (user_id)
2022-03-16 14:40:22,582 INFO sqlalchemy.engine.Engine [no key 0.00023s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00023s] ()
2022-03-16 14:40:22,582 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dbgroup_dbnodes (
        id INTEGER NOT NULL, 
        dbnode_id INTEGER NOT NULL, 
        dbgroup_id INTEGER NOT NULL, 
        CONSTRAINT db_dbgroup_dbnodes_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbgroup_dbnodes_dbgroup_id_dbnode_id UNIQUE (dbgroup_id, dbnode_id), 
        CONSTRAINT fk_db_dbgroup_dbnodes_dbgroup_id_db_dbgroup FOREIGN KEY(dbgroup_id) REFERENCES db_dbgroup (id) DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dbgroup_dbnodes_dbnode_id_db_dbnode FOREIGN KEY(dbnode_id) REFERENCES db_dbnode (id) DEFERRABLE INITIALLY DEFERRED
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dbgroup_dbnodes (
        id INTEGER NOT NULL, 
        dbnode_id INTEGER NOT NULL, 
        dbgroup_id INTEGER NOT NULL, 
        CONSTRAINT db_dbgroup_dbnodes_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dbgroup_dbnodes_dbgroup_id_dbnode_id UNIQUE (dbgroup_id, dbnode_id), 
        CONSTRAINT fk_db_dbgroup_dbnodes_dbgroup_id_db_dbgroup FOREIGN KEY(dbgroup_id) REFERENCES db_dbgroup (id) DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dbgroup_dbnodes_dbnode_id_db_dbnode FOREIGN KEY(dbnode_id) REFERENCES db_dbnode (id) DEFERRABLE INITIALLY DEFERRED
)


2022-03-16 14:40:22,585 INFO sqlalchemy.engine.Engine [no key 0.00248s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00248s] ()
2022-03-16 14:40:22,586 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbgroup_dbnodes_db_dbgroup_dbnodes_dbgroup_id ON db_dbgroup_dbnodes (dbgroup_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbgroup_dbnodes_db_dbgroup_dbnodes_dbgroup_id ON db_dbgroup_dbnodes (dbgroup_id)
2022-03-16 14:40:22,586 INFO sqlalchemy.engine.Engine [no key 0.00031s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00031s] ()
2022-03-16 14:40:22,587 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dbgroup_dbnodes_db_dbgroup_dbnodes_dbnode_id ON db_dbgroup_dbnodes (dbnode_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dbgroup_dbnodes_db_dbgroup_dbnodes_dbnode_id ON db_dbgroup_dbnodes (dbnode_id)
2022-03-16 14:40:22,587 INFO sqlalchemy.engine.Engine [no key 0.00027s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00027s] ()
2022-03-16 14:40:22,589 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dblink (
        id INTEGER NOT NULL, 
        input_id INTEGER NOT NULL, 
        output_id INTEGER NOT NULL, 
        label VARCHAR(255) NOT NULL, 
        type VARCHAR(255) NOT NULL, 
        CONSTRAINT db_dblink_pkey PRIMARY KEY (id), 
        CONSTRAINT fk_db_dblink_output_id_db_dbnode FOREIGN KEY(output_id) REFERENCES db_dbnode (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dblink_input_id_db_dbnode FOREIGN KEY(input_id) REFERENCES db_dbnode (id) DEFERRABLE INITIALLY DEFERRED
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dblink (
        id INTEGER NOT NULL, 
        input_id INTEGER NOT NULL, 
        output_id INTEGER NOT NULL, 
        label VARCHAR(255) NOT NULL, 
        type VARCHAR(255) NOT NULL, 
        CONSTRAINT db_dblink_pkey PRIMARY KEY (id), 
        CONSTRAINT fk_db_dblink_output_id_db_dbnode FOREIGN KEY(output_id) REFERENCES db_dbnode (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, 
        CONSTRAINT fk_db_dblink_input_id_db_dbnode FOREIGN KEY(input_id) REFERENCES db_dbnode (id) DEFERRABLE INITIALLY DEFERRED
)


2022-03-16 14:40:22,590 INFO sqlalchemy.engine.Engine [no key 0.00129s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00129s] ()
2022-03-16 14:40:22,591 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dblink_db_dblink_input_id ON db_dblink (input_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dblink_db_dblink_input_id ON db_dblink (input_id)
2022-03-16 14:40:22,591 INFO sqlalchemy.engine.Engine [no key 0.00026s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00026s] ()
2022-03-16 14:40:22,592 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dblink_db_dblink_output_id ON db_dblink (output_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dblink_db_dblink_output_id ON db_dblink (output_id)
2022-03-16 14:40:22,592 INFO sqlalchemy.engine.Engine [no key 0.00029s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00029s] ()
2022-03-16 14:40:22,593 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dblink_db_dblink_type ON db_dblink (type)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dblink_db_dblink_type ON db_dblink (type)
2022-03-16 14:40:22,594 INFO sqlalchemy.engine.Engine [no key 0.00034s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00034s] ()
2022-03-16 14:40:22,595 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dblink_db_dblink_label ON db_dblink (label)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dblink_db_dblink_label ON db_dblink (label)
2022-03-16 14:40:22,595 INFO sqlalchemy.engine.Engine [no key 0.00025s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00025s] ()
2022-03-16 14:40:22,596 INFO sqlalchemy.engine.Engine 
CREATE TABLE db_dblog (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        time DATETIME NOT NULL, 
        loggername VARCHAR(255) NOT NULL, 
        levelname VARCHAR(50) NOT NULL, 
        dbnode_id INTEGER NOT NULL, 
        message TEXT NOT NULL, 
        metadata JSON NOT NULL, 
        CONSTRAINT db_dblog_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dblog_uuid UNIQUE (uuid), 
        CONSTRAINT fk_db_dblog_dbnode_id_db_dbnode FOREIGN KEY(dbnode_id) REFERENCES db_dbnode (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED
)


03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] 
CREATE TABLE db_dblog (
        id INTEGER NOT NULL, 
        uuid VARCHAR(32) NOT NULL, 
        time DATETIME NOT NULL, 
        loggername VARCHAR(255) NOT NULL, 
        levelname VARCHAR(50) NOT NULL, 
        dbnode_id INTEGER NOT NULL, 
        message TEXT NOT NULL, 
        metadata JSON NOT NULL, 
        CONSTRAINT db_dblog_pkey PRIMARY KEY (id), 
        CONSTRAINT uq_db_dblog_uuid UNIQUE (uuid), 
        CONSTRAINT fk_db_dblog_dbnode_id_db_dbnode FOREIGN KEY(dbnode_id) REFERENCES db_dbnode (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED
)


2022-03-16 14:40:22,598 INFO sqlalchemy.engine.Engine [no key 0.00125s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00125s] ()
2022-03-16 14:40:22,599 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dblog_db_dblog_levelname ON db_dblog (levelname)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dblog_db_dblog_levelname ON db_dblog (levelname)
2022-03-16 14:40:22,599 INFO sqlalchemy.engine.Engine [no key 0.00024s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00024s] ()
2022-03-16 14:40:22,600 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dblog_db_dblog_loggername ON db_dblog (loggername)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dblog_db_dblog_loggername ON db_dblog (loggername)
2022-03-16 14:40:22,600 INFO sqlalchemy.engine.Engine [no key 0.00029s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00029s] ()
2022-03-16 14:40:22,601 INFO sqlalchemy.engine.Engine CREATE INDEX ix_db_dblog_db_dblog_dbnode_id ON db_dblog (dbnode_id)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] CREATE INDEX ix_db_dblog_db_dblog_dbnode_id ON db_dblog (dbnode_id)
2022-03-16 14:40:22,601 INFO sqlalchemy.engine.Engine [no key 0.00023s] ()
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [no key 0.00023s] ()
2022-03-16 14:40:22,601 INFO sqlalchemy.engine.Engine COMMIT
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] COMMIT
2022-03-16 14:40:22,603 INFO sqlalchemy.engine.Engine BEGIN (implicit)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] BEGIN (implicit)
2022-03-16 14:40:22,605 INFO sqlalchemy.engine.Engine INSERT INTO db_dbuser (email, first_name, last_name, institution) VALUES (?, ?, ?, ?)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] INSERT INTO db_dbuser (email, first_name, last_name, institution) VALUES (?, ?, ?, ?)
2022-03-16 14:40:22,605 INFO sqlalchemy.engine.Engine [generated in 0.00030s] ('user@email.com', '', '', '')
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [generated in 0.00030s] ('user@email.com', '', '', '')
2022-03-16 14:40:22,609 INFO sqlalchemy.engine.Engine COMMIT
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] COMMIT
2022-03-16 14:40:22,612 INFO sqlalchemy.engine.Engine BEGIN (implicit)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] BEGIN (implicit)
2022-03-16 14:40:22,624 INFO sqlalchemy.engine.Engine SELECT count(*) AS count_1 
FROM (SELECT db_dbnode_1.id AS db_dbnode_1_id, db_dbnode_1.uuid AS db_dbnode_1_uuid, db_dbnode_1.node_type AS db_dbnode_1_node_type, db_dbnode_1.process_type AS db_dbnode_1_process_type, db_dbnode_1.label AS db_dbnode_1_label, db_dbnode_1.description AS db_dbnode_1_description, db_dbnode_1.ctime AS db_dbnode_1_ctime, db_dbnode_1.mtime AS db_dbnode_1_mtime, db_dbnode_1.attributes AS db_dbnode_1_attributes, db_dbnode_1.extras AS db_dbnode_1_extras, db_dbnode_1.repository_metadata AS db_dbnode_1_repository_metadata, db_dbnode_1.dbcomputer_id AS db_dbnode_1_dbcomputer_id, db_dbnode_1.user_id AS db_dbnode_1_user_id 
FROM db_dbnode AS db_dbnode_1 
WHERE CAST(db_dbnode_1.node_type AS VARCHAR) LIKE ?) AS anon_1
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] SELECT count(*) AS count_1 
FROM (SELECT db_dbnode_1.id AS db_dbnode_1_id, db_dbnode_1.uuid AS db_dbnode_1_uuid, db_dbnode_1.node_type AS db_dbnode_1_node_type, db_dbnode_1.process_type AS db_dbnode_1_process_type, db_dbnode_1.label AS db_dbnode_1_label, db_dbnode_1.description AS db_dbnode_1_description, db_dbnode_1.ctime AS db_dbnode_1_ctime, db_dbnode_1.mtime AS db_dbnode_1_mtime, db_dbnode_1.attributes AS db_dbnode_1_attributes, db_dbnode_1.extras AS db_dbnode_1_extras, db_dbnode_1.repository_metadata AS db_dbnode_1_repository_metadata, db_dbnode_1.dbcomputer_id AS db_dbnode_1_dbcomputer_id, db_dbnode_1.user_id AS db_dbnode_1_user_id 
FROM db_dbnode AS db_dbnode_1 
WHERE CAST(db_dbnode_1.node_type AS VARCHAR) LIKE ?) AS anon_1
2022-03-16 14:40:22,625 INFO sqlalchemy.engine.Engine [generated in 0.00144s] ('%',)
03/16/2022 02:40:22 PM <47747> sqlalchemy.engine.Engine: [INFO] [generated in 0.00144s] ('%',)
Out[4]: 0

@chrisjsewell
Copy link
Member Author

chrisjsewell commented Mar 16, 2022

I'd love to also be able to "mimic" the command-line, but using the temporary profile 🤔, something like:

In [5]:  %verdi status

where %verdi uses the currently loaded profile, in the IPython session, rather than trying to load one externally

edit:

If you override ProfileParamType.convert, to use the already loaded profile, then you can do e.g.:

In [10]: from aiida.cmdline.commands.cmd_verdi import verdi
In [11]: verdi(["node", "show", "1"], standalone_mode=False)
Property     Value
-----------  ------------------------------------
type         Dict
pk           1
uuid         e69e910d-3854-49c2-9faf-b4db130d764b
label
description
ctime        2022-03-16 14:40:49.648498+00:00
mtime        2022-03-16 14:40:49.662397+00:00

@chrisjsewell
Copy link
Member Author

chrisjsewell commented Mar 18, 2022

Heck yeh, the tutorial gets automatically run as a notebook: https://aiida--5448.org.readthedocs.build/projects/aiida-core/en/5448/intro/tutorial.html

The current implementation proved fragile to refactoring:
`instant_defaults_listener` begun being called before `sqlalchemy.orm.mapper._event_on_init, which led to exceptions.
The new implementation is more targeted, in where it is injected into
model instantiation.
@chrisjsewell chrisjsewell force-pushed the sqlite_temp branch 2 times, most recently from 1190d7a to 9b5dab1 Compare April 25, 2022 09:55
@chrisjsewell chrisjsewell merged commit 6b31e77 into aiidateam:develop Apr 25, 2022
@chrisjsewell chrisjsewell deleted the sqlite_temp branch April 25, 2022 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant