Connection not detected for model
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
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.
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,
)
Any ideas? The app is registered, but when I try to register a user, it is as if the registration had no effect.
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'
'
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.
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.
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 how do you circumvent this problem?