tortoise-orm icon indicating copy to clipboard operation
tortoise-orm copied to clipboard

Connection not detected for model

Open caniko opened this issue 3 years ago • 4 comments

Error output:

/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/bin/python /opt/pycharm-professional/plugins/python/helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client 127.0.0.1 --port 36261 --file /home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/main.py 
Connected to pydev debugger (build 222.3739.56)
2022-09-01 15:52:05,843 - DEBUG - passlib.utils.compat - loaded lazy attr 'SafeConfigParser': <class 'configparser.ConfigParser'>
2022-09-01 15:52:05,843 - DEBUG - passlib.utils.compat - loaded lazy attr 'NativeStringIO': <class '_io.StringIO'>
2022-09-01 15:52:05,843 - DEBUG - passlib.utils.compat - loaded lazy attr 'BytesIO': <class '_io.BytesIO'>
2022-09-01 15:52:06,254 - DEBUG - passlib.registry - registered 'argon2' handler: <class 'passlib.handlers.argon2.argon2'>
2022-09-01 15:52:06,346 - DEBUG - __main__ - DEBUG mode detected, hope this is not production!
2022-09-01 15:52:06,347 - INFO - __main__ - Celery settings: {
  "main": "tasks",
  "broker": "redis://localhost:6379/0"
}
2022-09-01 15:52:06,351 - WARNING - syndb_backend.settings.base - Debugging CORS rule for flutter application: http://localhost:12909
2022-09-01 15:52:06,482 - DEBUG - syndb_backend.main - DEBUG mode detected, hope this is not production!
2022-09-01 15:52:06,483 - INFO - syndb_backend.main - Celery settings: {
  "main": "tasks",
  "broker": "redis://localhost:6379/0"
}
2022-09-01 15:52:06,513 - INFO - syndb_backend.devops.utils.run - Running SynDB FastAPI in development environment
2022-09-01 15:52:06,513 - INFO - syndb_backend.devops.utils.run - Path to swagger docs: http://127.0.0.1:8180/docs
2022-09-01 15:52:06,513 - DEBUG - asyncio - Using selector: EpollSelector
2022-09-01 15:52:06,516 - DEBUG - tortoise - Tortoise-ORM startup
    connections: {'master': {'engine': 'tortoise.backends.sqlite', 'credentials': {'file_path': ':memory:'}}}
    apps: {'models': {'models': ['stargate.models', 'user.models'], 'default_connection': 'master'}}
2022-09-01 15:52:16,389 - INFO - tortoise - Tortoise-ORM started, {'master': <tortoise.backends.sqlite.client.SqliteClient object at 0x7f19611faf50>}, {'models': {'Animal': <class 'stargate.models.Animal'>, 'BrainStructure': <class 'stargate.models.BrainStructure'>, 'Dataset': <class 'stargate.models.Dataset'>, 'MicroscopyMethod': <class 'stargate.models.MicroscopyMethod'>, 'Mutation': <class 'stargate.models.Mutation'>, 'AcademicAccount': <class 'user.models.AcademicAccount'>, 'AccessToken': <class 'user.models.AccessToken'>, 'Group': <class 'user.models.Group'>, 'OAuthAccount': <class 'user.models.OAuthAccount'>, 'User': <class 'user.models.User'>}}
2022-09-01 15:52:16,389 - INFO - tortoise - Tortoise-ORM generating schema
2022-09-01 15:52:16,394 - DEBUG - tortoise - Creating schema: CREATE TABLE IF NOT EXISTS "animal" (
    "species" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "brainstructure" (
    "brain_structure" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "microscopymethod" (
    "method" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "mutation" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "gene" VARCHAR(80) NOT NULL UNIQUE,
    "knock_out" INT NOT NULL UNIQUE DEFAULT 0,
    "knock_in" INT NOT NULL UNIQUE DEFAULT 0,
    "method" VARCHAR(200) NOT NULL UNIQUE
);
CREATE TABLE IF NOT EXISTS "group" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "name" VARCHAR(200) NOT NULL,
    "institution" VARCHAR(200) NOT NULL
);
CREATE TABLE IF NOT EXISTS "user" (
    "email" VARCHAR(255) NOT NULL UNIQUE,
    "hashed_password" VARCHAR(1024) NOT NULL,
    "is_active" INT NOT NULL  DEFAULT 1,
    "is_superuser" INT NOT NULL  DEFAULT 0,
    "is_verified" INT NOT NULL  DEFAULT 0,
    "id" CHAR(36) NOT NULL  PRIMARY KEY
);
CREATE INDEX IF NOT EXISTS "idx_user_email_1b4f1c" ON "user" ("email");
CREATE TABLE IF NOT EXISTS "dataset" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "doi" VARCHAR(200),
    "upload_complete" INT NOT NULL  DEFAULT 0,
    "dataset_length" BIGINT NOT NULL,
    "notes" TEXT,
    "created_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "updated_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "owner_id_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE RESTRICT
);
CREATE INDEX IF NOT EXISTS "idx_dataset_upload__ca6271" ON "dataset" ("upload_complete");
CREATE TABLE IF NOT EXISTS "accesstoken" (
    "token" VARCHAR(43) NOT NULL  PRIMARY KEY,
    "created_at" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "oauthaccount" (
    "oauth_name" VARCHAR(100) NOT NULL,
    "access_token" VARCHAR(1024) NOT NULL,
    "expires_at" INT,
    "refresh_token" VARCHAR(1024),
    "account_id" VARCHAR(255) NOT NULL,
    "account_email" VARCHAR(255) NOT NULL,
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS "idx_oauthaccoun_account_0f36a3" ON "oauthaccount" ("account_id");
CREATE TABLE IF NOT EXISTS "academicaccount" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "institution" VARCHAR(200) NOT NULL,
    "role" VARCHAR(200) NOT NULL,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,
    "oauth_account_id" CHAR(36)  UNIQUE REFERENCES "oauthaccount" ("id") ON DELETE SET NULL
);
CREATE TABLE IF NOT EXISTS "executive_of_groups" (
    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "members_groups" (
    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "dataset_Mutation" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "mutation_id" CHAR(36) NOT NULL REFERENCES "mutation" ("id") ON DELETE RESTRICT
) /* Mutation tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_Animal" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "animal_id" VARCHAR(200) NOT NULL REFERENCES "animal" ("species") ON DELETE RESTRICT
) /* Animal tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_MicroscopyMethod" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "microscopymethod_id" VARCHAR(200) NOT NULL REFERENCES "microscopymethod" ("method") ON DELETE RESTRICT
) /* MicroscopyMethod tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_BrainStructure" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "brainstructure_id" VARCHAR(200) NOT NULL REFERENCES "brainstructure" ("brain_structure") ON DELETE RESTRICT
) /* BrainStructure tag related to dataset */;
2022-09-01 15:52:16,396 - DEBUG - aiosqlite - executing <function connect.<locals>.connector at 0x7f1960d49630>
2022-09-01 15:52:16,396 - DEBUG - aiosqlite - operation <function connect.<locals>.connector at 0x7f1960d49630> completed
2022-09-01 15:52:16,396 - DEBUG - aiosqlite - executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1960d14240>, 'PRAGMA journal_mode=WAL', [])
2022-09-01 15:52:16,396 - DEBUG - aiosqlite - operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1960d14240>, 'PRAGMA journal_mode=WAL', []) completed
2022-09-01 15:52:16,397 - DEBUG - aiosqlite - executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7f19611afd40>)
2022-09-01 15:52:16,397 - DEBUG - aiosqlite - operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7f19611afd40>) completed
2022-09-01 15:52:16,397 - DEBUG - aiosqlite - executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1960d14240>, 'PRAGMA journal_size_limit=16384', [])
2022-09-01 15:52:16,397 - DEBUG - aiosqlite - operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1960d14240>, 'PRAGMA journal_size_limit=16384', []) completed
2022-09-01 15:52:16,397 - DEBUG - aiosqlite - executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7f19611afec0>)
2022-09-01 15:52:16,397 - DEBUG - aiosqlite - operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7f19611afec0>) completed
2022-09-01 15:52:16,398 - DEBUG - aiosqlite - executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1960d14240>, 'PRAGMA foreign_keys=ON', [])
2022-09-01 15:52:16,398 - DEBUG - aiosqlite - operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7f1960d14240>, 'PRAGMA foreign_keys=ON', []) completed
2022-09-01 15:52:16,398 - DEBUG - aiosqlite - executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7f19611afd40>)
2022-09-01 15:52:16,398 - DEBUG - aiosqlite - operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7f19611afd40>) completed
2022-09-01 15:52:16,398 - DEBUG - tortoise.db_client - Created connection <Connection(Thread-10, started 139746906990272)> with params: filename=:memory: journal_mode=WAL journal_size_limit=16384 foreign_keys=ON
2022-09-01 15:52:16,398 - DEBUG - tortoise.db_client - CREATE TABLE IF NOT EXISTS "animal" (
    "species" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "brainstructure" (
    "brain_structure" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "microscopymethod" (
    "method" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "mutation" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "gene" VARCHAR(80) NOT NULL UNIQUE,
    "knock_out" INT NOT NULL UNIQUE DEFAULT 0,
    "knock_in" INT NOT NULL UNIQUE DEFAULT 0,
    "method" VARCHAR(200) NOT NULL UNIQUE
);
CREATE TABLE IF NOT EXISTS "group" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "name" VARCHAR(200) NOT NULL,
    "institution" VARCHAR(200) NOT NULL
);
CREATE TABLE IF NOT EXISTS "user" (
    "email" VARCHAR(255) NOT NULL UNIQUE,
    "hashed_password" VARCHAR(1024) NOT NULL,
    "is_active" INT NOT NULL  DEFAULT 1,
    "is_superuser" INT NOT NULL  DEFAULT 0,
    "is_verified" INT NOT NULL  DEFAULT 0,
    "id" CHAR(36) NOT NULL  PRIMARY KEY
);
CREATE INDEX IF NOT EXISTS "idx_user_email_1b4f1c" ON "user" ("email");
CREATE TABLE IF NOT EXISTS "dataset" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "doi" VARCHAR(200),
    "upload_complete" INT NOT NULL  DEFAULT 0,
    "dataset_length" BIGINT NOT NULL,
    "notes" TEXT,
    "created_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "updated_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "owner_id_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE RESTRICT
);
CREATE INDEX IF NOT EXISTS "idx_dataset_upload__ca6271" ON "dataset" ("upload_complete");
CREATE TABLE IF NOT EXISTS "accesstoken" (
    "token" VARCHAR(43) NOT NULL  PRIMARY KEY,
    "created_at" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "oauthaccount" (
    "oauth_name" VARCHAR(100) NOT NULL,
    "access_token" VARCHAR(1024) NOT NULL,
    "expires_at" INT,
    "refresh_token" VARCHAR(1024),
    "account_id" VARCHAR(255) NOT NULL,
    "account_email" VARCHAR(255) NOT NULL,
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS "idx_oauthaccoun_account_0f36a3" ON "oauthaccount" ("account_id");
CREATE TABLE IF NOT EXISTS "academicaccount" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "institution" VARCHAR(200) NOT NULL,
    "role" VARCHAR(200) NOT NULL,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,
    "oauth_account_id" CHAR(36)  UNIQUE REFERENCES "oauthaccount" ("id") ON DELETE SET NULL
);
CREATE TABLE IF NOT EXISTS "executive_of_groups" (
    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "members_groups" (
    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "dataset_Mutation" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "mutation_id" CHAR(36) NOT NULL REFERENCES "mutation" ("id") ON DELETE RESTRICT
) /* Mutation tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_Animal" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "animal_id" VARCHAR(200) NOT NULL REFERENCES "animal" ("species") ON DELETE RESTRICT
) /* Animal tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_MicroscopyMethod" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "microscopymethod_id" VARCHAR(200) NOT NULL REFERENCES "microscopymethod" ("method") ON DELETE RESTRICT
) /* MicroscopyMethod tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_BrainStructure" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "brainstructure_id" VARCHAR(200) NOT NULL REFERENCES "brainstructure" ("brain_structure") ON DELETE RESTRICT
) /* BrainStructure tag related to dataset */;
2022-09-01 15:52:16,398 - DEBUG - aiosqlite - executing functools.partial(<built-in method executescript of sqlite3.Connection object at 0x7f1960d14240>, 'CREATE TABLE IF NOT EXISTS "animal" (\n    "species" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "brainstructure" (\n    "brain_structure" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "microscopymethod" (\n    "method" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "mutation" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "gene" VARCHAR(80) NOT NULL UNIQUE,\n    "knock_out" INT NOT NULL UNIQUE DEFAULT 0,\n    "knock_in" INT NOT NULL UNIQUE DEFAULT 0,\n    "method" VARCHAR(200) NOT NULL UNIQUE\n);\nCREATE TABLE IF NOT EXISTS "group" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "name" VARCHAR(200) NOT NULL,\n    "institution" VARCHAR(200) NOT NULL\n);\nCREATE TABLE IF NOT EXISTS "user" (\n    "email" VARCHAR(255) NOT NULL UNIQUE,\n    "hashed_password" VARCHAR(1024) NOT NULL,\n    "is_active" INT NOT NULL  DEFAULT 1,\n    "is_superuser" INT NOT NULL  DEFAULT 0,\n    "is_verified" INT NOT NULL  DEFAULT 0,\n    "id" CHAR(36) NOT NULL  PRIMARY KEY\n);\nCREATE INDEX IF NOT EXISTS "idx_user_email_1b4f1c" ON "user" ("email");\nCREATE TABLE IF NOT EXISTS "dataset" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "doi" VARCHAR(200),\n    "upload_complete" INT NOT NULL  DEFAULT 0,\n    "dataset_length" BIGINT NOT NULL,\n    "notes" TEXT,\n    "created_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "updated_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "owner_id_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE RESTRICT\n);\nCREATE INDEX IF NOT EXISTS "idx_dataset_upload__ca6271" ON "dataset" ("upload_complete");\nCREATE TABLE IF NOT EXISTS "accesstoken" (\n    "token" VARCHAR(43) NOT NULL  PRIMARY KEY,\n    "created_at" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "oauthaccount" (\n    "oauth_name" VARCHAR(100) NOT NULL,\n    "access_token" VARCHAR(1024) NOT NULL,\n    "expires_at" INT,\n    "refresh_token" VARCHAR(1024),\n    "account_id" VARCHAR(255) NOT NULL,\n    "account_email" VARCHAR(255) NOT NULL,\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE INDEX IF NOT EXISTS "idx_oauthaccoun_account_0f36a3" ON "oauthaccount" ("account_id");\nCREATE TABLE IF NOT EXISTS "academicaccount" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "institution" VARCHAR(200) NOT NULL,\n    "role" VARCHAR(200) NOT NULL,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,\n    "oauth_account_id" CHAR(36)  UNIQUE REFERENCES "oauthaccount" ("id") ON DELETE SET NULL\n);\nCREATE TABLE IF NOT EXISTS "executive_of_groups" (\n    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "members_groups" (\n    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "dataset_Mutation" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "mutation_id" CHAR(36) NOT NULL REFERENCES "mutation" ("id") ON DELETE RESTRICT\n) /* Mutation tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_Animal" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "animal_id" VARCHAR(200) NOT NULL REFERENCES "animal" ("species") ON DELETE RESTRICT\n) /* Animal tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_MicroscopyMethod" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "microscopymethod_id" VARCHAR(200) NOT NULL REFERENCES "microscopymethod" ("method") ON DELETE RESTRICT\n) /* MicroscopyMethod tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_BrainStructure" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "brainstructure_id" VARCHAR(200) NOT NULL REFERENCES "brainstructure" ("brain_structure") ON DELETE RESTRICT\n) /* BrainStructure tag related to dataset */;')
2022-09-01 15:52:16,399 - DEBUG - aiosqlite - operation functools.partial(<built-in method executescript of sqlite3.Connection object at 0x7f1960d14240>, 'CREATE TABLE IF NOT EXISTS "animal" (\n    "species" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "brainstructure" (\n    "brain_structure" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "microscopymethod" (\n    "method" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "mutation" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "gene" VARCHAR(80) NOT NULL UNIQUE,\n    "knock_out" INT NOT NULL UNIQUE DEFAULT 0,\n    "knock_in" INT NOT NULL UNIQUE DEFAULT 0,\n    "method" VARCHAR(200) NOT NULL UNIQUE\n);\nCREATE TABLE IF NOT EXISTS "group" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "name" VARCHAR(200) NOT NULL,\n    "institution" VARCHAR(200) NOT NULL\n);\nCREATE TABLE IF NOT EXISTS "user" (\n    "email" VARCHAR(255) NOT NULL UNIQUE,\n    "hashed_password" VARCHAR(1024) NOT NULL,\n    "is_active" INT NOT NULL  DEFAULT 1,\n    "is_superuser" INT NOT NULL  DEFAULT 0,\n    "is_verified" INT NOT NULL  DEFAULT 0,\n    "id" CHAR(36) NOT NULL  PRIMARY KEY\n);\nCREATE INDEX IF NOT EXISTS "idx_user_email_1b4f1c" ON "user" ("email");\nCREATE TABLE IF NOT EXISTS "dataset" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "doi" VARCHAR(200),\n    "upload_complete" INT NOT NULL  DEFAULT 0,\n    "dataset_length" BIGINT NOT NULL,\n    "notes" TEXT,\n    "created_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "updated_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "owner_id_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE RESTRICT\n);\nCREATE INDEX IF NOT EXISTS "idx_dataset_upload__ca6271" ON "dataset" ("upload_complete");\nCREATE TABLE IF NOT EXISTS "accesstoken" (\n    "token" VARCHAR(43) NOT NULL  PRIMARY KEY,\n    "created_at" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "oauthaccount" (\n    "oauth_name" VARCHAR(100) NOT NULL,\n    "access_token" VARCHAR(1024) NOT NULL,\n    "expires_at" INT,\n    "refresh_token" VARCHAR(1024),\n    "account_id" VARCHAR(255) NOT NULL,\n    "account_email" VARCHAR(255) NOT NULL,\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE INDEX IF NOT EXISTS "idx_oauthaccoun_account_0f36a3" ON "oauthaccount" ("account_id");\nCREATE TABLE IF NOT EXISTS "academicaccount" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "institution" VARCHAR(200) NOT NULL,\n    "role" VARCHAR(200) NOT NULL,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,\n    "oauth_account_id" CHAR(36)  UNIQUE REFERENCES "oauthaccount" ("id") ON DELETE SET NULL\n);\nCREATE TABLE IF NOT EXISTS "executive_of_groups" (\n    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "members_groups" (\n    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "dataset_Mutation" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "mutation_id" CHAR(36) NOT NULL REFERENCES "mutation" ("id") ON DELETE RESTRICT\n) /* Mutation tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_Animal" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "animal_id" VARCHAR(200) NOT NULL REFERENCES "animal" ("species") ON DELETE RESTRICT\n) /* Animal tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_MicroscopyMethod" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "microscopymethod_id" VARCHAR(200) NOT NULL REFERENCES "microscopymethod" ("method") ON DELETE RESTRICT\n) /* MicroscopyMethod tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_BrainStructure" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "brainstructure_id" VARCHAR(200) NOT NULL REFERENCES "brainstructure" ("brain_structure") ON DELETE RESTRICT\n) /* BrainStructure tag related to dataset */;') completed
2022-09-01 15:52:16,400 - WARNING - syndb_backend.user.tooling - Creating superuser: [email protected]; password: systar
2022-09-01 15:52:16,404 - DEBUG - passlib.registry - registered 'bcrypt' handler: <class 'passlib.handlers.bcrypt.bcrypt'>
Traceback (most recent call last):
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 621, in lifespan
    async with self.lifespan_context(app):
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 518, in __aenter__
    await self._router.startup()
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 598, in startup
    await handler()
  File "/home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/main.py", line 61, in create_test_superuser
    await create_user(
  File "/home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/user/tooling.py", line 30, in create_user
    await user_manager.create(
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi_users/manager.py", line 131, in create
    existing_user = await self.user_db.get_by_email(user_create.email)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi_users_tortoise/__init__.py", line 94, in get_by_email
    query = self.user_model.filter(email__iexact=email).first()
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/models.py", line 1251, in filter
    return cls._meta.manager.get_queryset().filter(*args, **kwargs)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/manager.py", line 15, in get_queryset
    return QuerySet(self._model)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/queryset.py", line 297, in __init__
    super().__init__(model)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/queryset.py", line 94, in __init__
    self.capabilities: Capabilities = model._meta.db.capabilities
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/models.py", line 285, in db
    raise ConfigurationError(
tortoise.exceptions.ConfigurationError: default_connection for the model <class 'syndb_backend.user.models.User'> cannot be None
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/can/.pyenv/versions/3.10.6/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/home/can/.pyenv/versions/3.10.6/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
    return future.result()
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/asyncio/__init__.py", line 49, in serve
    await worker_serve(
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/asyncio/run.py", line 81, in worker_serve
    raise exception
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/asyncio/lifespan.py", line 34, in handle_lifespan
    await self.app(
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/app_wrappers.py", line 31, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi/applications.py", line 259, in __call__
    await super().__call__(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/middleware/errors.py", line 146, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/brotli_asgi/__init__.py", line 78, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/middleware/cors.py", line 76, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/exceptions.py", line 58, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 645, in __call__
    await self.lifespan(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 630, in lifespan
    await send({"type": "lifespan.startup.failed", "message": exc_text})
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/asyncio/lifespan.py", line 88, in asgi_send
    raise LifespanFailureError("startup", message["message"])
hypercorn.utils.LifespanFailureError: Lifespan failure in startup. 'Traceback (most recent call last):
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 621, in lifespan
    async with self.lifespan_context(app):
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 518, in __aenter__
    await self._router.startup()
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 598, in startup
    await handler()
  File "/home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/main.py", line 61, in create_test_superuser
    await create_user(
  File "/home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/user/tooling.py", line 30, in create_user
    await user_manager.create(
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi_users/manager.py", line 131, in create
    existing_user = await self.user_db.get_by_email(user_create.email)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi_users_tortoise/__init__.py", line 94, in get_by_email
    query = self.user_model.filter(email__iexact=email).first()
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/models.py", line 1251, in filter
    return cls._meta.manager.get_queryset().filter(*args, **kwargs)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/manager.py", line 15, in get_queryset
    return QuerySet(self._model)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/queryset.py", line 297, in __init__
    super().__init__(model)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/queryset.py", line 94, in __init__
    self.capabilities: Capabilities = model._meta.db.capabilities
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/models.py", line 285, in db
    raise ConfigurationError(
tortoise.exceptions.ConfigurationError: default_connection for the model <class 'syndb_backend.user.models.User'> cannot be None
'
python-BaseException

caniko avatar Sep 01 '22 14:09 caniko

I am trying to create a user and save it on the User table, which is where the connection is found to be None.

I register the database using register_tortoise from FastAPI.

caniko avatar Sep 02 '22 09:09 caniko

I run:

config = {
            "connections": {
                "master": {
                    "engine": "tortoise.backends.sqlite",
                    "credentials": {"file_path": ":memory:"},
                },
            },
            "apps": {
                "models": {
                    "models": ["stargate.models", "user.models"],
                    "default_connection": "master",
                },
            },
        }
register_tortoise(app, config=config, generate_schemas=True, add_exception_handlers=True)

# The models are detected by Tortoise!

get_user_user_db_context = contextlib.asynccontextmanager(get_user_db)
get_user_manager_context = contextlib.asynccontextmanager(get_user_manager)


async def create_user(email: str, password: str, is_superuser: bool = False, is_verified: bool = False):
    logger.warning(f"Creating superuser: {email}; password: {password}")
    if not (email and password):
        raise ValueError("Both email and password needs to be defined for user creation")

    await connect_to_db()

    try:
        async with get_user_user_db_context() as user_db:
            async with get_user_manager_context(user_db) as user_manager:
                await user_manager.create(
                    UserCreate(
                        email=email,
                        password=password,
                        is_superuser=is_superuser,
                        is_verified=is_verified,
                    )
                )
                logger.info(f"Created user with email {email}")
    except UserAlreadyExists:
        logger.error(f'User with email "{email}" already exists')


@app.on_event("startup")
    async def create_test_superuser():
        await create_user(
            email=settings.test_superuser_name,
            password=settings.test_superuser_password,
            is_superuser=True,
            is_verified=True,
        )

caniko avatar Sep 02 '22 09:09 caniko

Any ideas? The app is registered, but when I try to register a user, it is as if the registration had no effect.

caniko avatar Sep 05 '22 06:09 caniko

I tried to do this model.py:

class MyModel(Model):
    test_field: str = fields.CharField(pk=True, max_length=50)

Create:

        async with get_user_user_db_context() as user_db:
            async with get_user_manager_context(user_db) as user_manager:
                model = MyModel(test_field="sdfasdf")
                await model.create(user_db)

Got this error:

/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/bin/python /opt/pycharm-professional/plugins/python/helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client 127.0.0.1 --port 37109 --file /home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/main.py 
Connected to pydev debugger (build 222.3739.56)
2022-09-05 10:41:36,726 - DEBUG - passlib.utils.compat - loaded lazy attr 'SafeConfigParser': <class 'configparser.ConfigParser'>
2022-09-05 10:41:36,726 - DEBUG - passlib.utils.compat - loaded lazy attr 'NativeStringIO': <class '_io.StringIO'>
2022-09-05 10:41:36,726 - DEBUG - passlib.utils.compat - loaded lazy attr 'BytesIO': <class '_io.BytesIO'>
2022-09-05 10:41:37,019 - DEBUG - passlib.registry - registered 'argon2' handler: <class 'passlib.handlers.argon2.argon2'>
2022-09-05 10:41:37,114 - DEBUG - __main__ - DEBUG mode detected, hope this is not production!
2022-09-05 10:41:37,117 - WARNING - syndb_backend.settings.base - Debugging CORS rule for flutter application: http://localhost:12909
2022-09-05 10:41:37,250 - DEBUG - syndb_backend.main - DEBUG mode detected, hope this is not production!
2022-09-05 10:41:37,280 - INFO - syndb_backend.devops.utils.run - Running SynDB FastAPI in development environment
2022-09-05 10:41:37,280 - INFO - syndb_backend.devops.utils.run - Path to swagger docs: http://127.0.0.1:8180/docs
2022-09-05 10:41:37,281 - DEBUG - asyncio - Using selector: EpollSelector
2022-09-05 10:41:37,283 - DEBUG - tortoise - Tortoise-ORM startup
    connections: {'default': 'sqlite://:memory:'}
    apps: {'models': {'models': ['stargate.models', 'user.models'], 'default_connection': 'default'}}
2022-09-05 10:41:40,042 - INFO - tortoise - Tortoise-ORM started, {'default': <tortoise.backends.sqlite.client.SqliteClient object at 0x7fcdd3f267d0>}, {'models': {'Animal': <class 'stargate.models.Animal'>, 'BrainStructure': <class 'stargate.models.BrainStructure'>, 'Dataset': <class 'stargate.models.Dataset'>, 'MicroscopyMethod': <class 'stargate.models.MicroscopyMethod'>, 'Mutation': <class 'stargate.models.Mutation'>, 'AcademicAccount': <class 'user.models.AcademicAccount'>, 'AccessToken': <class 'user.models.AccessToken'>, 'Group': <class 'user.models.Group'>, 'MyModel': <class 'user.models.MyModel'>, 'OAuthAccount': <class 'user.models.OAuthAccount'>, 'User': <class 'user.models.User'>}}
2022-09-05 10:41:40,042 - INFO - tortoise - Tortoise-ORM generating schema
2022-09-05 10:41:40,047 - DEBUG - tortoise - Creating schema: CREATE TABLE IF NOT EXISTS "animal" (
    "species" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "brainstructure" (
    "brain_structure" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "microscopymethod" (
    "method" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "mutation" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "gene" VARCHAR(80) NOT NULL UNIQUE,
    "knock_out" INT NOT NULL UNIQUE DEFAULT 0,
    "knock_in" INT NOT NULL UNIQUE DEFAULT 0,
    "method" VARCHAR(200) NOT NULL UNIQUE
);
CREATE TABLE IF NOT EXISTS "group" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "name" VARCHAR(200) NOT NULL,
    "institution" VARCHAR(200) NOT NULL
);
CREATE TABLE IF NOT EXISTS "mymodel" (
    "test_field" VARCHAR(50) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "user" (
    "email" VARCHAR(255) NOT NULL UNIQUE,
    "hashed_password" VARCHAR(1024) NOT NULL,
    "is_active" INT NOT NULL  DEFAULT 1,
    "is_superuser" INT NOT NULL  DEFAULT 0,
    "is_verified" INT NOT NULL  DEFAULT 0,
    "id" CHAR(36) NOT NULL  PRIMARY KEY
);
CREATE INDEX IF NOT EXISTS "idx_user_email_1b4f1c" ON "user" ("email");
CREATE TABLE IF NOT EXISTS "dataset" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "doi" VARCHAR(200),
    "upload_complete" INT NOT NULL  DEFAULT 0,
    "dataset_length" BIGINT NOT NULL,
    "notes" TEXT,
    "created_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "updated_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "owner_id_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE RESTRICT
);
CREATE INDEX IF NOT EXISTS "idx_dataset_upload__ca6271" ON "dataset" ("upload_complete");
CREATE TABLE IF NOT EXISTS "accesstoken" (
    "token" VARCHAR(43) NOT NULL  PRIMARY KEY,
    "created_at" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "oauthaccount" (
    "oauth_name" VARCHAR(100) NOT NULL,
    "access_token" VARCHAR(1024) NOT NULL,
    "expires_at" INT,
    "refresh_token" VARCHAR(1024),
    "account_id" VARCHAR(255) NOT NULL,
    "account_email" VARCHAR(255) NOT NULL,
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS "idx_oauthaccoun_account_0f36a3" ON "oauthaccount" ("account_id");
CREATE TABLE IF NOT EXISTS "academicaccount" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "institution" VARCHAR(200) NOT NULL,
    "role" VARCHAR(200) NOT NULL,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,
    "oauth_account_id" CHAR(36)  UNIQUE REFERENCES "oauthaccount" ("id") ON DELETE SET NULL
);
CREATE TABLE IF NOT EXISTS "members_groups" (
    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "executive_of_groups" (
    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "dataset_BrainStructure" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "brainstructure_id" VARCHAR(200) NOT NULL REFERENCES "brainstructure" ("brain_structure") ON DELETE RESTRICT
) /* BrainStructure tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_Mutation" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "mutation_id" CHAR(36) NOT NULL REFERENCES "mutation" ("id") ON DELETE RESTRICT
) /* Mutation tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_MicroscopyMethod" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "microscopymethod_id" VARCHAR(200) NOT NULL REFERENCES "microscopymethod" ("method") ON DELETE RESTRICT
) /* MicroscopyMethod tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_Animal" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "animal_id" VARCHAR(200) NOT NULL REFERENCES "animal" ("species") ON DELETE RESTRICT
) /* Animal tag related to dataset */;
2022-09-05 10:41:40,048 - DEBUG - aiosqlite - executing <function connect.<locals>.connector at 0x7fcddc0eeef0>
2022-09-05 10:41:40,048 - DEBUG - aiosqlite - operation <function connect.<locals>.connector at 0x7fcddc0eeef0> completed
2022-09-05 10:41:40,048 - DEBUG - aiosqlite - executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7fcddf3e1740>, 'PRAGMA journal_mode=WAL', [])
2022-09-05 10:41:40,048 - DEBUG - aiosqlite - operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7fcddf3e1740>, 'PRAGMA journal_mode=WAL', []) completed
2022-09-05 10:41:40,049 - DEBUG - aiosqlite - executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7fcddc0d64c0>)
2022-09-05 10:41:40,049 - DEBUG - aiosqlite - operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7fcddc0d64c0>) completed
2022-09-05 10:41:40,049 - DEBUG - aiosqlite - executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7fcddf3e1740>, 'PRAGMA journal_size_limit=16384', [])
2022-09-05 10:41:40,049 - DEBUG - aiosqlite - operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7fcddf3e1740>, 'PRAGMA journal_size_limit=16384', []) completed
2022-09-05 10:41:40,049 - DEBUG - aiosqlite - executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7fcddc0d63c0>)
2022-09-05 10:41:40,049 - DEBUG - aiosqlite - operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7fcddc0d63c0>) completed
2022-09-05 10:41:40,049 - DEBUG - aiosqlite - executing functools.partial(<built-in method execute of sqlite3.Connection object at 0x7fcddf3e1740>, 'PRAGMA foreign_keys=ON', [])
2022-09-05 10:41:40,049 - DEBUG - aiosqlite - operation functools.partial(<built-in method execute of sqlite3.Connection object at 0x7fcddf3e1740>, 'PRAGMA foreign_keys=ON', []) completed
2022-09-05 10:41:40,050 - DEBUG - aiosqlite - executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x7fcddc0d64c0>)
2022-09-05 10:41:40,050 - DEBUG - aiosqlite - operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x7fcddc0d64c0>) completed
2022-09-05 10:41:40,050 - DEBUG - tortoise.db_client - Created connection <Connection(Thread-6, started 140521932580544)> with params: filename=:memory: journal_mode=WAL journal_size_limit=16384 foreign_keys=ON
2022-09-05 10:41:40,050 - DEBUG - tortoise.db_client - CREATE TABLE IF NOT EXISTS "animal" (
    "species" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "brainstructure" (
    "brain_structure" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "microscopymethod" (
    "method" VARCHAR(200) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "mutation" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "gene" VARCHAR(80) NOT NULL UNIQUE,
    "knock_out" INT NOT NULL UNIQUE DEFAULT 0,
    "knock_in" INT NOT NULL UNIQUE DEFAULT 0,
    "method" VARCHAR(200) NOT NULL UNIQUE
);
CREATE TABLE IF NOT EXISTS "group" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "name" VARCHAR(200) NOT NULL,
    "institution" VARCHAR(200) NOT NULL
);
CREATE TABLE IF NOT EXISTS "mymodel" (
    "test_field" VARCHAR(50) NOT NULL  PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS "user" (
    "email" VARCHAR(255) NOT NULL UNIQUE,
    "hashed_password" VARCHAR(1024) NOT NULL,
    "is_active" INT NOT NULL  DEFAULT 1,
    "is_superuser" INT NOT NULL  DEFAULT 0,
    "is_verified" INT NOT NULL  DEFAULT 0,
    "id" CHAR(36) NOT NULL  PRIMARY KEY
);
CREATE INDEX IF NOT EXISTS "idx_user_email_1b4f1c" ON "user" ("email");
CREATE TABLE IF NOT EXISTS "dataset" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "doi" VARCHAR(200),
    "upload_complete" INT NOT NULL  DEFAULT 0,
    "dataset_length" BIGINT NOT NULL,
    "notes" TEXT,
    "created_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "updated_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "owner_id_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE RESTRICT
);
CREATE INDEX IF NOT EXISTS "idx_dataset_upload__ca6271" ON "dataset" ("upload_complete");
CREATE TABLE IF NOT EXISTS "accesstoken" (
    "token" VARCHAR(43) NOT NULL  PRIMARY KEY,
    "created_at" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "oauthaccount" (
    "oauth_name" VARCHAR(100) NOT NULL,
    "access_token" VARCHAR(1024) NOT NULL,
    "expires_at" INT,
    "refresh_token" VARCHAR(1024),
    "account_id" VARCHAR(255) NOT NULL,
    "account_email" VARCHAR(255) NOT NULL,
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS "idx_oauthaccoun_account_0f36a3" ON "oauthaccount" ("account_id");
CREATE TABLE IF NOT EXISTS "academicaccount" (
    "id" CHAR(36) NOT NULL  PRIMARY KEY,
    "institution" VARCHAR(200) NOT NULL,
    "role" VARCHAR(200) NOT NULL,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,
    "oauth_account_id" CHAR(36)  UNIQUE REFERENCES "oauthaccount" ("id") ON DELETE SET NULL
);
CREATE TABLE IF NOT EXISTS "members_groups" (
    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "executive_of_groups" (
    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,
    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "dataset_BrainStructure" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "brainstructure_id" VARCHAR(200) NOT NULL REFERENCES "brainstructure" ("brain_structure") ON DELETE RESTRICT
) /* BrainStructure tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_Mutation" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "mutation_id" CHAR(36) NOT NULL REFERENCES "mutation" ("id") ON DELETE RESTRICT
) /* Mutation tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_MicroscopyMethod" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "microscopymethod_id" VARCHAR(200) NOT NULL REFERENCES "microscopymethod" ("method") ON DELETE RESTRICT
) /* MicroscopyMethod tag related to dataset */;
CREATE TABLE IF NOT EXISTS "dataset_Animal" (
    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,
    "animal_id" VARCHAR(200) NOT NULL REFERENCES "animal" ("species") ON DELETE RESTRICT
) /* Animal tag related to dataset */;
2022-09-05 10:41:40,050 - DEBUG - aiosqlite - executing functools.partial(<built-in method executescript of sqlite3.Connection object at 0x7fcddf3e1740>, 'CREATE TABLE IF NOT EXISTS "animal" (\n    "species" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "brainstructure" (\n    "brain_structure" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "microscopymethod" (\n    "method" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "mutation" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "gene" VARCHAR(80) NOT NULL UNIQUE,\n    "knock_out" INT NOT NULL UNIQUE DEFAULT 0,\n    "knock_in" INT NOT NULL UNIQUE DEFAULT 0,\n    "method" VARCHAR(200) NOT NULL UNIQUE\n);\nCREATE TABLE IF NOT EXISTS "group" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "name" VARCHAR(200) NOT NULL,\n    "institution" VARCHAR(200) NOT NULL\n);\nCREATE TABLE IF NOT EXISTS "mymodel" (\n    "test_field" VARCHAR(50) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "user" (\n    "email" VARCHAR(255) NOT NULL UNIQUE,\n    "hashed_password" VARCHAR(1024) NOT NULL,\n    "is_active" INT NOT NULL  DEFAULT 1,\n    "is_superuser" INT NOT NULL  DEFAULT 0,\n    "is_verified" INT NOT NULL  DEFAULT 0,\n    "id" CHAR(36) NOT NULL  PRIMARY KEY\n);\nCREATE INDEX IF NOT EXISTS "idx_user_email_1b4f1c" ON "user" ("email");\nCREATE TABLE IF NOT EXISTS "dataset" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "doi" VARCHAR(200),\n    "upload_complete" INT NOT NULL  DEFAULT 0,\n    "dataset_length" BIGINT NOT NULL,\n    "notes" TEXT,\n    "created_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "updated_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "owner_id_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE RESTRICT\n);\nCREATE INDEX IF NOT EXISTS "idx_dataset_upload__ca6271" ON "dataset" ("upload_complete");\nCREATE TABLE IF NOT EXISTS "accesstoken" (\n    "token" VARCHAR(43) NOT NULL  PRIMARY KEY,\n    "created_at" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "oauthaccount" (\n    "oauth_name" VARCHAR(100) NOT NULL,\n    "access_token" VARCHAR(1024) NOT NULL,\n    "expires_at" INT,\n    "refresh_token" VARCHAR(1024),\n    "account_id" VARCHAR(255) NOT NULL,\n    "account_email" VARCHAR(255) NOT NULL,\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE INDEX IF NOT EXISTS "idx_oauthaccoun_account_0f36a3" ON "oauthaccount" ("account_id");\nCREATE TABLE IF NOT EXISTS "academicaccount" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "institution" VARCHAR(200) NOT NULL,\n    "role" VARCHAR(200) NOT NULL,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,\n    "oauth_account_id" CHAR(36)  UNIQUE REFERENCES "oauthaccount" ("id") ON DELETE SET NULL\n);\nCREATE TABLE IF NOT EXISTS "members_groups" (\n    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "executive_of_groups" (\n    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "dataset_BrainStructure" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "brainstructure_id" VARCHAR(200) NOT NULL REFERENCES "brainstructure" ("brain_structure") ON DELETE RESTRICT\n) /* BrainStructure tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_Mutation" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "mutation_id" CHAR(36) NOT NULL REFERENCES "mutation" ("id") ON DELETE RESTRICT\n) /* Mutation tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_MicroscopyMethod" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "microscopymethod_id" VARCHAR(200) NOT NULL REFERENCES "microscopymethod" ("method") ON DELETE RESTRICT\n) /* MicroscopyMethod tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_Animal" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "animal_id" VARCHAR(200) NOT NULL REFERENCES "animal" ("species") ON DELETE RESTRICT\n) /* Animal tag related to dataset */;')
2022-09-05 10:41:40,051 - DEBUG - aiosqlite - operation functools.partial(<built-in method executescript of sqlite3.Connection object at 0x7fcddf3e1740>, 'CREATE TABLE IF NOT EXISTS "animal" (\n    "species" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "brainstructure" (\n    "brain_structure" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "microscopymethod" (\n    "method" VARCHAR(200) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "mutation" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "gene" VARCHAR(80) NOT NULL UNIQUE,\n    "knock_out" INT NOT NULL UNIQUE DEFAULT 0,\n    "knock_in" INT NOT NULL UNIQUE DEFAULT 0,\n    "method" VARCHAR(200) NOT NULL UNIQUE\n);\nCREATE TABLE IF NOT EXISTS "group" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "name" VARCHAR(200) NOT NULL,\n    "institution" VARCHAR(200) NOT NULL\n);\nCREATE TABLE IF NOT EXISTS "mymodel" (\n    "test_field" VARCHAR(50) NOT NULL  PRIMARY KEY\n);\nCREATE TABLE IF NOT EXISTS "user" (\n    "email" VARCHAR(255) NOT NULL UNIQUE,\n    "hashed_password" VARCHAR(1024) NOT NULL,\n    "is_active" INT NOT NULL  DEFAULT 1,\n    "is_superuser" INT NOT NULL  DEFAULT 0,\n    "is_verified" INT NOT NULL  DEFAULT 0,\n    "id" CHAR(36) NOT NULL  PRIMARY KEY\n);\nCREATE INDEX IF NOT EXISTS "idx_user_email_1b4f1c" ON "user" ("email");\nCREATE TABLE IF NOT EXISTS "dataset" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "doi" VARCHAR(200),\n    "upload_complete" INT NOT NULL  DEFAULT 0,\n    "dataset_length" BIGINT NOT NULL,\n    "notes" TEXT,\n    "created_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "updated_on" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "owner_id_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE RESTRICT\n);\nCREATE INDEX IF NOT EXISTS "idx_dataset_upload__ca6271" ON "dataset" ("upload_complete");\nCREATE TABLE IF NOT EXISTS "accesstoken" (\n    "token" VARCHAR(43) NOT NULL  PRIMARY KEY,\n    "created_at" TIMESTAMP NOT NULL  DEFAULT CURRENT_TIMESTAMP,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "oauthaccount" (\n    "oauth_name" VARCHAR(100) NOT NULL,\n    "access_token" VARCHAR(1024) NOT NULL,\n    "expires_at" INT,\n    "refresh_token" VARCHAR(1024),\n    "account_id" VARCHAR(255) NOT NULL,\n    "account_email" VARCHAR(255) NOT NULL,\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE INDEX IF NOT EXISTS "idx_oauthaccoun_account_0f36a3" ON "oauthaccount" ("account_id");\nCREATE TABLE IF NOT EXISTS "academicaccount" (\n    "id" CHAR(36) NOT NULL  PRIMARY KEY,\n    "institution" VARCHAR(200) NOT NULL,\n    "role" VARCHAR(200) NOT NULL,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE,\n    "oauth_account_id" CHAR(36)  UNIQUE REFERENCES "oauthaccount" ("id") ON DELETE SET NULL\n);\nCREATE TABLE IF NOT EXISTS "members_groups" (\n    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "executive_of_groups" (\n    "group_id" CHAR(36) NOT NULL REFERENCES "group" ("id") ON DELETE CASCADE,\n    "user_id" CHAR(36) NOT NULL REFERENCES "user" ("id") ON DELETE CASCADE\n);\nCREATE TABLE IF NOT EXISTS "dataset_BrainStructure" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "brainstructure_id" VARCHAR(200) NOT NULL REFERENCES "brainstructure" ("brain_structure") ON DELETE RESTRICT\n) /* BrainStructure tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_Mutation" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "mutation_id" CHAR(36) NOT NULL REFERENCES "mutation" ("id") ON DELETE RESTRICT\n) /* Mutation tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_MicroscopyMethod" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "microscopymethod_id" VARCHAR(200) NOT NULL REFERENCES "microscopymethod" ("method") ON DELETE RESTRICT\n) /* MicroscopyMethod tag related to dataset */;\nCREATE TABLE IF NOT EXISTS "dataset_Animal" (\n    "dataset_id" CHAR(36) NOT NULL REFERENCES "dataset" ("id") ON DELETE RESTRICT,\n    "animal_id" VARCHAR(200) NOT NULL REFERENCES "animal" ("species") ON DELETE RESTRICT\n) /* Animal tag related to dataset */;') completed
2022-09-05 10:41:40,051 - WARNING - syndb_backend.user.tooling - Creating superuser: [email protected]; password: systar
Traceback (most recent call last):
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 621, in lifespan
    async with self.lifespan_context(app):
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 518, in __aenter__
    await self._router.startup()
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 598, in startup
    await handler()
  File "/home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/main.py", line 61, in create_test_superuser
    await create_user(
  File "/home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/user/tooling.py", line 32, in create_user
    await model.create(user_db)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/models.py", line 1135, in create
    await instance.save(using_db=db, force_create=True)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/models.py", line 924, in save
    executor = db.executor_class(model=self.__class__, db=db)
AttributeError: 'TortoiseUserDatabase' object has no attribute 'executor_class'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/can/.pyenv/versions/3.10.6/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/home/can/.pyenv/versions/3.10.6/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
    return future.result()
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/asyncio/__init__.py", line 49, in serve
    await worker_serve(
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/asyncio/run.py", line 81, in worker_serve
    raise exception
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/asyncio/lifespan.py", line 43, in handle_lifespan
    await self.app(
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/app_wrappers.py", line 33, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi/applications.py", line 259, in __call__
    await super().__call__(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/middleware/errors.py", line 146, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/brotli_asgi/__init__.py", line 78, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/middleware/cors.py", line 76, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/exceptions.py", line 58, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 645, in __call__
    await self.lifespan(scope, receive, send)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 630, in lifespan
    await send({"type": "lifespan.startup.failed", "message": exc_text})
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/hypercorn/asyncio/lifespan.py", line 101, in asgi_send
    raise LifespanFailureError("startup", message["message"])
hypercorn.utils.LifespanFailureError: Lifespan failure in startup. 'Traceback (most recent call last):
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 621, in lifespan
    async with self.lifespan_context(app):
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 518, in __aenter__
    await self._router.startup()
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/starlette/routing.py", line 598, in startup
    await handler()
  File "/home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/main.py", line 61, in create_test_superuser
    await create_user(
  File "/home/can/Projects/SynDB/stack/syndb-fastapi/syndb_backend/user/tooling.py", line 32, in create_user
    await model.create(user_db)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/models.py", line 1135, in create
    await instance.save(using_db=db, force_create=True)
  File "/home/can/.cache/pypoetry/virtualenvs/syndb-backend-IoWp0C02-py3.10/lib/python3.10/site-packages/tortoise/models.py", line 924, in save
    executor = db.executor_class(model=self.__class__, db=db)
AttributeError: 'TortoiseUserDatabase' object has no attribute 'executor_class'
'

caniko avatar Sep 05 '22 08:09 caniko

Hi @caniko ! Have you found a way to fix this? I ran into a similar situation. I have two models. One works as it should, and the other writes that the default_connection cannot be None. Although the default_connection for these two models is specified in the config.

HlebKrah avatar May 03 '23 09:05 HlebKrah

It is most likely related to an issue in your FKs and ManyToMany relationships. There is a limited amount of forensics for detecting issues on this side, so you have to get into the weeds; I figured it out with the debugger. It has been a very long time, I wish I could give a more detailed answer.

You should consider switching to SQLModel if you are on SQL!

Edit: I thought about it a bit more, try to look at the string path to the foreign keys.

caniko avatar May 03 '23 10:05 caniko

Thanks for the quick response. I'll look in that direction, but I don't think that's the problem. If you use to call ORM in Depends (get_current_user ) for example, then everything is OK, but if in the handler itself, then an error pops up. At the same time, another similar model works well.

I would happily switch to another ORM, I prefer SqlAlchemy, but alas, I use https://github.com/fastapi-admin/fastapi-admin which depends on tortoise, and I don't want to use two ORMs in one project.

In any case, thanks for the answer, I'll look into it.

HlebKrah avatar May 03 '23 10:05 HlebKrah

@HlebKrah how do you circumvent this problem?

marcosgeo avatar Oct 28 '23 16:10 marcosgeo