inventree / InvenTree

Open Source Inventory Management System
https://docs.inventree.org
MIT License
4.39k stars 793 forks source link

[FR] Speed up performance #5586

Closed wolflu05 closed 1 year ago

wolflu05 commented 1 year ago

Please verify that this feature request has NOT been suggested before.

Problem statement

While developing #5561 I tried to make sure that it doesn't impact performance so I enabled SQL logging by adding the following to the settings:

diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py
index c387dc19a..d06eab681 100644
--- a/InvenTree/InvenTree/settings.py
+++ b/InvenTree/InvenTree/settings.py
@@ -107,6 +107,11 @@ LOGGING = {
             '()': 'maintenance_mode.logging.RequireNotMaintenanceMode503',
         },
     },
+    'loggers': {
+        'django.db.backends': {
+            'level': 'DEBUG',
+        },
+    }
 }

 # Get a logger instance for this setup file
  1. I noticed a lot of SQL queries made on a simple hot reload (see logs below - I needed to truncate about 400 similar lines that it fits in this issue) which can impact performance and could be improved by selecting most of them in one query.
  2. I discovered the StockItemManager which seems like it is not referenced anywhere so its dead code. This manager needs to be tested if the prefetch works correctly and then attached to the StockItem.
Startup logs:

``` (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 79 LIMIT 21; args=(79,) [~100 more rows] [~100 more rows] [~100 more rows] [~100 more rows] (0.000) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 56 LIMIT 21; args=(56,) (0.000) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 56 LIMIT 21; args=(56,) (0.000) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 55 LIMIT 21; args=(55,) (0.000) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 55 LIMIT 21; args=(55,) (0.000) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 55 LIMIT 21; args=(55,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 55 LIMIT 21; args=(55,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 52 LIMIT 21; args=(52,) (0.005) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 52 LIMIT 21; args=(52,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 52 LIMIT 21; args=(52,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 52 LIMIT 21; args=(52,) (0.000) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 101 LIMIT 21; args=(101,) (0.000) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 102 LIMIT 21; args=(102,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 57 LIMIT 21; args=(57,) (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'admin') LIMIT 21; args=(3, 'admin') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'part_category') LIMIT 21; args=(3, 'part_category') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'part') LIMIT 21; args=(3, 'part') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'stocktake') LIMIT 21; args=(3, 'stocktake') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'stock_location') LIMIT 21; args=(3, 'stock_location') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'stock') LIMIT 21; args=(3, 'stock') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'build') LIMIT 21; args=(3, 'build') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'purchase_order') LIMIT 21; args=(3, 'purchase_order') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'sales_order') LIMIT 21; args=(3, 'sales_order') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'return_order') LIMIT 21; args=(3, 'return_order') (0.001) SELECT "auth_group"."id", "auth_group"."name" FROM "auth_group"; args=() (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'auth' AND "django_content_type"."model" = 'group') LIMIT 21; args=('auth', 'group') (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'auth' AND "django_content_type"."model" = 'user') LIMIT 21; args=('auth', 'user') (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 1 AND "users_owner"."owner_type_id" = 64) LIMIT 21; args=(1, 64) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 2 AND "users_owner"."owner_type_id" = 64) LIMIT 21; args=(2, 64) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 3 AND "users_owner"."owner_type_id" = 64) LIMIT 21; args=(3, 64) (0.003) SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user"; args=() (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 1 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(1, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 2 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(2, 65) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 3 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(3, 65) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 4 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(4, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 5 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(5, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 6 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(6, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 8 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(8, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 9 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(9, 65) (0.001) SELECT "django_q_schedule"."id", "django_q_schedule"."name", "django_q_schedule"."func", "django_q_schedule"."hook", "django_q_schedule"."args", "django_q_schedule"."kwargs", "django_q_schedule"."schedule_type", "django_q_schedule"."minutes", "django_q_schedule"."repeats", "django_q_schedule"."next_run", "django_q_schedule"."cron", "django_q_schedule"."task", "django_q_schedule"."cluster", "django_q_schedule"."intended_date_kwarg" FROM "django_q_schedule" WHERE "django_q_schedule"."func" IN ('InvenTree.tasks.delete_expired_sessions', 'stock.tasks.delete_old_stock_items'); args=('InvenTree.tasks.delete_expired_sessions', 'stock.tasks.delete_old_stock_items') (0.001) BEGIN; args=None (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.heartbeat' LIMIT 1; args=('InvenTree.tasks.heartbeat',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'I', "minutes" = 5, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.heartbeat'; args=('I', 5, -1, 'InvenTree.tasks.heartbeat') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_successful_tasks' LIMIT 1; args=('InvenTree.tasks.delete_successful_tasks',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_successful_tasks'; args=('D', -1, 'InvenTree.tasks.delete_successful_tasks') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_failed_tasks' LIMIT 1; args=('InvenTree.tasks.delete_failed_tasks',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_failed_tasks'; args=('D', -1, 'InvenTree.tasks.delete_failed_tasks') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_error_logs' LIMIT 1; args=('InvenTree.tasks.delete_old_error_logs',) (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_error_logs'; args=('D', -1, 'InvenTree.tasks.delete_old_error_logs') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_notifications' LIMIT 1; args=('InvenTree.tasks.delete_old_notifications',) (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_notifications'; args=('D', -1, 'InvenTree.tasks.delete_old_notifications') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_updates' LIMIT 1; args=('InvenTree.tasks.check_for_updates',) (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_updates'; args=('D', -1, 'InvenTree.tasks.check_for_updates') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.update_exchange_rates' LIMIT 1; args=('InvenTree.tasks.update_exchange_rates',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.update_exchange_rates'; args=('D', -1, 'InvenTree.tasks.update_exchange_rates') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.run_backup' LIMIT 1; args=('InvenTree.tasks.run_backup',) (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.run_backup'; args=('D', -1, 'InvenTree.tasks.run_backup') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_migrations' LIMIT 1; args=('InvenTree.tasks.check_for_migrations',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_migrations'; args=('D', -1, 'InvenTree.tasks.check_for_migrations') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'part.tasks.check_missing_pricing' LIMIT 1; args=('part.tasks.check_missing_pricing',) (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'part.tasks.check_missing_pricing'; args=('D', -1, 'part.tasks.check_missing_pricing') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'part.tasks.scheduled_stocktake_reports' LIMIT 1; args=('part.tasks.scheduled_stocktake_reports',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'part.tasks.scheduled_stocktake_reports'; args=('D', -1, 'part.tasks.scheduled_stocktake_reports') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'build.tasks.check_overdue_build_orders' LIMIT 1; args=('build.tasks.check_overdue_build_orders',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'build.tasks.check_overdue_build_orders'; args=('D', -1, 'build.tasks.check_overdue_build_orders') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notifications' LIMIT 1; args=('common.tasks.delete_old_notifications',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notifications'; args=('D', -1, 'common.tasks.delete_old_notifications') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'common.tasks.update_news_feed' LIMIT 1; args=('common.tasks.update_news_feed',) (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'common.tasks.update_news_feed'; args=('D', -1, 'common.tasks.update_news_feed') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notes_images' LIMIT 1; args=('common.tasks.delete_old_notes_images',) (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notes_images'; args=('D', -1, 'common.tasks.delete_old_notes_images') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'label.tasks.cleanup_old_label_outputs' LIMIT 1; args=('label.tasks.cleanup_old_label_outputs',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'label.tasks.cleanup_old_label_outputs'; args=('D', -1, 'label.tasks.cleanup_old_label_outputs') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_purchase_orders' LIMIT 1; args=('order.tasks.check_overdue_purchase_orders',) (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_purchase_orders'; args=('D', -1, 'order.tasks.check_overdue_purchase_orders') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_sales_orders' LIMIT 1; args=('order.tasks.check_overdue_sales_orders',) (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_sales_orders'; args=('D', -1, 'order.tasks.check_overdue_sales_orders') (0.017) INSERT INTO "django_q_ormq" ("key", "payload", "lock") VALUES ('InvenTree', 'gAWV1gAAAAAAAAB9lCiMAmlklIwgYWQ1N2VjODFhZWI4NDA3ZTllYmM5MzYyMmFmNGQ2NzeUjARuYW1llIwfbmVicmFza2EtY29sYS1zdGFpcndheS1tYWdhemluZZSMBGZ1bmOUjA9JbnZlblRyZWUudGFza3OUjAloZWFydGJlYXSUk5SMBGFyZ3OUKYwGa3dhcmdzlH2UjAdzdGFydGVklIwIZGF0ZXRpbWWUjAhkYXRldGltZZSTlEMKB-cJFQkCCANXaZSMBHB5dHqUjARfVVRDlJOUKVKUhpRSlHUu:1qjFZY:Osoy1NZ5rAXmQdMhLRvTxkRHGCcKot3SNyTwgnFRj3E', '2023-09-21 09:02:08.220733'); args=['InvenTree', 'gAWV1gAAAAAAAAB9lCiMAmlklIwgYWQ1N2VjODFhZWI4NDA3ZTllYmM5MzYyMmFmNGQ2NzeUjARuYW1llIwfbmVicmFza2EtY29sYS1zdGFpcndheS1tYWdhemluZZSMBGZ1bmOUjA9JbnZlblRyZWUudGFza3OUjAloZWFydGJlYXSUk5SMBGFyZ3OUKYwGa3dhcmdzlH2UjAdzdGFydGVklIwIZGF0ZXRpbWWUjAhkYXRldGltZZSTlEMKB-cJFQkCCANXaZSMBHB5dHqUjARfVVRDlJOUKVKUhpRSlHUu:1qjFZY:Osoy1NZ5rAXmQdMhLRvTxkRHGCcKot3SNyTwgnFRj3E', '2023-09-21 09:02:08.220733'] (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT (1) AS "a" FROM "exchange_exchangebackend" WHERE "exchange_exchangebackend"."name" = 'InvenTreeExchange' LIMIT 1; args=('InvenTreeExchange',) (0.007) SELECT "exchange_exchangebackend"."name", "exchange_exchangebackend"."last_update", "exchange_exchangebackend"."base_currency" FROM "exchange_exchangebackend" WHERE "exchange_exchangebackend"."name" = 'InvenTreeExchange' ORDER BY "exchange_exchangebackend"."name" ASC LIMIT 1; args=('InvenTreeExchange',) (0.001) SELECT "common_customunit"."id", "common_customunit"."name", "common_customunit"."symbol", "common_customunit"."definition" FROM "common_customunit"; args=() Redefining 'Ohm' () Watching for file changes with StatReloader Watching for file changes with StatReloader Performing system checks... (0.010) SELECT "flags_flagstate"."id", "flags_flagstate"."name", "flags_flagstate"."condition", "flags_flagstate"."value", "flags_flagstate"."required" FROM "flags_flagstate"; args=() System check identified no issues (1 silenced). (0.002) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT name, type FROM sqlite_master WHERE type in ('table', 'view') AND NOT name='sqlite_sequence' ORDER BY name; args=None (0.002) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=() September 21, 2023 - 09:02:44 Django version 3.2.20, using settings 'InvenTree.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. ```

Suggested solution

Try to combine the queries with __in=[1,3,4,5] or lte, gte .

### Related PRs
- [ ] #5612
- [ ] #5613
- [ ] #5617
- [ ] #5722
- [ ] #5723
- [ ] #5724
- [ ] #5725
- [ ] #5726

Describe alternatives you've considered

-

Examples of other systems

No response

Do you want to develop this?

SchrodingersGat commented 1 year ago

@wolflu05 nice find, certainly seems like a major performance hit. It will be interesting to see where these are coming from. Do you have any idea about the source of these duplicate queries?

wolflu05 commented 1 year ago

No, no idea, haven't investigated further, just found that these queries are made. Maybe they are somehow related to Django. At least the first 400. @matmair do you have seen this before in one of your Django apps?

SchrodingersGat commented 1 year ago

@wolflu05 I'd suggest you check this again on your end with the latest code. The linked issues should have addressed a lot of this, I think

wolflu05 commented 1 year ago

Those 400+ django queries are now gone, but the logs still show a bunch of sql queries that look like the n+1 issue. But good work. Do you know what exactly caused those django queries, that looked similar to this one? These seem to be gone now.

(0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" = 79 LIMIT 21; args=(79,)
Startup logs ```sql 2023-10-08 19:31:39,587 DEBUG Loading SECRET_KEY from '/workspaces/InvenTree/dev/secret_key.txt' 2023-10-08 19:31:39,589 DEBUG Configuring database backend: 2023-10-08 19:31:39,590 INFO DB_ENGINE: django.db.backends.sqlite3 2023-10-08 19:31:39,590 INFO DB_NAME: /workspaces/InvenTree/dev/database.sqlite3 2023-10-08 19:31:39,590 INFO DB_HOST: '' 2023-10-08 19:31:39,600 INFO InvenTree running with DEBUG enabled 2023-10-08 19:31:39,600 INFO MEDIA_ROOT: '/workspaces/InvenTree/dev/media' 2023-10-08 19:31:39,600 INFO STATIC_ROOT: '/workspaces/InvenTree/dev/static' (0.005) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) Saving setting 'InvenTreeSetting:INVENTREE_DEFAULT_CURRENCY' to cache (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'SERVER\_RESTART\_REQUIRED' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('SERVER\\_RESTART\\_REQUIRED',) 2023-10-08 19:31:45,429 DEBUG Loading SECRET_KEY from '/workspaces/InvenTree/dev/secret_key.txt' 2023-10-08 19:31:45,433 DEBUG Configuring database backend: 2023-10-08 19:31:45,434 INFO DB_ENGINE: django.db.backends.sqlite3 2023-10-08 19:31:45,434 INFO DB_NAME: /workspaces/InvenTree/dev/database.sqlite3 2023-10-08 19:31:45,435 INFO DB_HOST: '' 2023-10-08 19:31:45,448 INFO InvenTree running with DEBUG enabled 2023-10-08 19:31:45,448 INFO MEDIA_ROOT: '/workspaces/InvenTree/dev/media' 2023-10-08 19:31:45,449 INFO STATIC_ROOT: '/workspaces/InvenTree/dev/static' (0.005) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) Saving setting 'InvenTreeSetting:INVENTREE_DEFAULT_CURRENCY' to cache (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_DEFAULT\_CURRENCY' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_DEFAULT\\_CURRENCY',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'SERVER\_RESTART\_REQUIRED' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('SERVER\\_RESTART\\_REQUIRED',) Loading InvenTree plugins (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'PLUGIN\_ON\_STARTUP' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('PLUGIN\\_ON\\_STARTUP',) Installing plugins from plugins file Running pip command: /workspaces/InvenTree/dev/venv/bin/python -m pip install -r /workspaces/InvenTree/dev/plugins.txt Plugin Registry: Reloading plugins Collecting plugins Added plugin directory: '/workspaces/InvenTree/dev/plugins' as '/workspaces/InvenTree/dev/plugins' Loading plugins from directory 'plugin.builtin' Loading plugins from directory 'plugin.samples' Loading plugins from directory 'plugins' Loading plugins from directory '/workspaces/InvenTree/dev/plugins' Collected 27 plugins barcodes.inventree_barcode, integration.core_notifications, integration.currency_exchange, plugin.builtin.integration.core_notifications, labels.inventree_label, event.event_sample, event.filtered_event_sample, integration.another_sample, integration.another_sample, integration.api_caller, integration.custom_panel_sample, integration.label_sample, integration.report_plugin_sample, integration.sample, integration.sample_currency_exchange, integration.scheduled_task, integration.simpleactionplugin, plugin.samples.integration.simpleactionplugin, integration.validation_sample, integration.version, locate.locate_sample, app_registry_plg, settings_test_plg, view_test_plg, inventree_cups.cups_plugin, inventree_supplier_plugin.InvenTreeSupplierPlugin, inventree_bulk_plugin.InvenTreeBulkPlugin Start unloading plugins (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'SERVER\_RESTART\_REQUIRED' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('SERVER\\_RESTART\\_REQUIRED',) Loading InvenTree plugins (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'INVENTREE\_BASE\_URL' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('INVENTREE\\_BASE\\_URL',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_URL' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_URL',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_URL' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_URL',) Deactivating plugin settings Finished deactivating plugins Finished unloading plugins Loading plugins Starting plugin initialisation (0.002) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventreebarcode' AND "plugin_pluginconfig"."name" = 'InvenTreeBarcode') LIMIT 21; args=('inventreebarcode', 'InvenTreeBarcode') Loading plugin `InvenTreeBarcode` Loaded plugin `InvenTreeBarcode` in 0.001s (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventreecorenotificationsplugin' AND "plugin_pluginconfig"."name" = 'InvenTreeCoreNotificationsPlugin') LIMIT 21; args=('inventreecorenotificationsplugin', 'InvenTreeCoreNotificationsPlugin') Loading plugin `InvenTreeCoreNotificationsPlugin` Loaded plugin `InvenTreeCoreNotificationsPlugin` in 0.002s (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventreecurrencyexchange' AND "plugin_pluginconfig"."name" = 'InvenTreeCurrencyExchange') LIMIT 21; args=('inventreecurrencyexchange', 'InvenTreeCurrencyExchange') Loading plugin `InvenTreeCurrencyExchange` Loaded plugin `InvenTreeCurrencyExchange` in 0.001s (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventreecorenotificationsplugin' AND "plugin_pluginconfig"."name" = 'InvenTreeCoreNotificationsPlugin') LIMIT 21; args=('inventreecorenotificationsplugin', 'InvenTreeCoreNotificationsPlugin') Loading plugin `InvenTreeCoreNotificationsPlugin` Loaded plugin `InvenTreeCoreNotificationsPlugin` in 0.001s (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventreelabel' AND "plugin_pluginconfig"."name" = 'InvenTreeLabel') LIMIT 21; args=('inventreelabel', 'InvenTreeLabel') Loading plugin `InvenTreeLabel` Loaded plugin `InvenTreeLabel` in 0.002s (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'sampleevent' AND "plugin_pluginconfig"."name" = 'EventPlugin') LIMIT 21; args=('sampleevent', 'EventPlugin') (0.008) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'sampleevent', "name" = 'EventPlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 49; args=('{}', 'sampleevent', 'EventPlugin', False, 49) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'filteredsampleevent' AND "plugin_pluginconfig"."name" = 'FilteredEventPlugin') LIMIT 21; args=('filteredsampleevent', 'FilteredEventPlugin') (0.008) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'filteredsampleevent', "name" = 'FilteredEventPlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 82; args=('{}', 'filteredsampleevent', 'FilteredEventPlugin', False, 82) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'nointegrationplugin' AND "plugin_pluginconfig"."name" = 'NoIntegrationPlugin') LIMIT 21; args=('nointegrationplugin', 'NoIntegrationPlugin') (0.006) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'nointegrationplugin', "name" = 'NoIntegrationPlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 50; args=('{}', 'nointegrationplugin', 'NoIntegrationPlugin', False, 50) (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'wrongintegrationplugin' AND "plugin_pluginconfig"."name" = 'WrongIntegrationPlugin') LIMIT 21; args=('wrongintegrationplugin', 'WrongIntegrationPlugin') (0.007) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'wrongintegrationplugin', "name" = 'WrongIntegrationPlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 51; args=('{}', 'wrongintegrationplugin', 'WrongIntegrationPlugin', False, 51) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'sample-api-caller' AND "plugin_pluginconfig"."name" = 'Sample API Caller') LIMIT 21; args=('sample-api-caller', 'Sample API Caller') (0.007) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'sample-api-caller', "name" = 'Sample API Caller', "active" = 0 WHERE "plugin_pluginconfig"."id" = 52; args=('{}', 'sample-api-caller', 'Sample API Caller', False, 52) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'samplepanel' AND "plugin_pluginconfig"."name" = 'CustomPanelExample') LIMIT 21; args=('samplepanel', 'CustomPanelExample') (0.008) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'samplepanel', "name" = 'CustomPanelExample', "active" = 0 WHERE "plugin_pluginconfig"."id" = 54; args=('{}', 'samplepanel', 'CustomPanelExample', False, 54) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'samplelabelprinter' AND "plugin_pluginconfig"."name" = 'Sample Label Printer') LIMIT 21; args=('samplelabelprinter', 'Sample Label Printer') (0.007) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'samplelabelprinter', "name" = 'Sample Label Printer', "active" = 0 WHERE "plugin_pluginconfig"."id" = 83; args=('{}', 'samplelabelprinter', 'Sample Label Printer', False, 83) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'samplereport' AND "plugin_pluginconfig"."name" = 'Sample Report Plugin') LIMIT 21; args=('samplereport', 'Sample Report Plugin') (0.006) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'samplereport', "name" = 'Sample Report Plugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 84; args=('{}', 'samplereport', 'Sample Report Plugin', False, 84) (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'sample' AND "plugin_pluginconfig"."name" = 'SampleIntegrationPlugin') LIMIT 21; args=('sample', 'SampleIntegrationPlugin') (0.010) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'sample', "name" = 'SampleIntegrationPlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 56; args=('{}', 'sample', 'SampleIntegrationPlugin', False, 56) (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'samplecurrencyexchange' AND "plugin_pluginconfig"."name" = 'Sample Exchange') LIMIT 21; args=('samplecurrencyexchange', 'Sample Exchange') (0.008) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'samplecurrencyexchange', "name" = 'Sample Exchange', "active" = 0 WHERE "plugin_pluginconfig"."id" = 85; args=('{}', 'samplecurrencyexchange', 'Sample Exchange', False, 85) (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'schedule' AND "plugin_pluginconfig"."name" = 'ScheduledTasksPlugin') LIMIT 21; args=('schedule', 'ScheduledTasksPlugin') (0.009) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'schedule', "name" = 'ScheduledTasksPlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 57; args=('{}', 'schedule', 'ScheduledTasksPlugin', False, 57) (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'simpleactionplugin' AND "plugin_pluginconfig"."name" = 'SimpleActionPlugin') LIMIT 21; args=('simpleactionplugin', 'SimpleActionPlugin') (0.010) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'simpleactionplugin', "name" = 'SimpleActionPlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 58; args=('{}', 'simpleactionplugin', 'SimpleActionPlugin', False, 58) (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'simpleactionplugin' AND "plugin_pluginconfig"."name" = 'SimpleActionPlugin') LIMIT 21; args=('simpleactionplugin', 'SimpleActionPlugin') (0.009) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'simpleactionplugin', "name" = 'SimpleActionPlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 58; args=('{}', 'simpleactionplugin', 'SimpleActionPlugin', False, 58) (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'validator' AND "plugin_pluginconfig"."name" = 'CustomValidator') LIMIT 21; args=('validator', 'CustomValidator') (0.007) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'validator', "name" = 'CustomValidator', "active" = 0 WHERE "plugin_pluginconfig"."id" = 59; args=('{}', 'validator', 'CustomValidator', False, 59) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'sampleversion' AND "plugin_pluginconfig"."name" = 'Sample Version Plugin') LIMIT 21; args=('sampleversion', 'Sample Version Plugin') (0.007) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'sampleversion', "name" = 'Sample Version Plugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 86; args=('{}', 'sampleversion', 'Sample Version Plugin', False, 86) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'samplelocate' AND "plugin_pluginconfig"."name" = 'SampleLocatePlugin') LIMIT 21; args=('samplelocate', 'SampleLocatePlugin') (0.007) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'samplelocate', "name" = 'SampleLocatePlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 61; args=('{}', 'samplelocate', 'SampleLocatePlugin', False, 61) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-appmixin-test' AND "plugin_pluginconfig"."name" = 'InvenTreeAppMixinTestPlugin') LIMIT 21; args=('inventree-appmixin-test', 'InvenTreeAppMixinTestPlugin') (0.007) UPDATE "plugin_pluginconfig" SET "metadata" = '{}', "key" = 'inventree-appmixin-test', "name" = 'InvenTreeAppMixinTestPlugin', "active" = 0 WHERE "plugin_pluginconfig"."id" = 76; args=('{}', 'inventree-appmixin-test', 'InvenTreeAppMixinTestPlugin', False, 76) (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'settingstest' AND "plugin_pluginconfig"."name" = 'SettingsTest') LIMIT 21; args=('settingstest', 'SettingsTest') Loading plugin `SettingsTest` Loaded plugin `SettingsTest` in 0.001s (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-view-test' AND "plugin_pluginconfig"."name" = 'InvenTreeViewTestPlugin') LIMIT 21; args=('inventree-view-test', 'InvenTreeViewTestPlugin') Loading plugin `InvenTreeViewTestPlugin` Loaded plugin `InvenTreeViewTestPlugin` in 0.001s (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'cups' AND "plugin_pluginconfig"."name" = 'CupsLabels') LIMIT 21; args=('cups', 'CupsLabels') Loading plugin `CupsLabels` Loaded plugin `CupsLabels` in 0.003s (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-supplier-plugin' AND "plugin_pluginconfig"."name" = 'InvenTreeSupplierPlugin') LIMIT 21; args=('inventree-supplier-plugin', 'InvenTreeSupplierPlugin') Loading plugin `InvenTreeSupplierPlugin` Loaded plugin `InvenTreeSupplierPlugin` in 0.003s (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-bulk-plugin' AND "plugin_pluginconfig"."name" = 'InvenTreeBulkPlugin') LIMIT 21; args=('inventree-bulk-plugin', 'InvenTreeBulkPlugin') Loading plugin `InvenTreeBulkPlugin` Loaded plugin `InvenTreeBulkPlugin` in 0.004s Found 9 active plugins Activating plugin settings Activating plugin tasks (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_SCHEDULE' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_SCHEDULE',) Saving setting 'InvenTreeSetting:ENABLE_PLUGINS_SCHEDULE' to cache (0.001) SELECT "django_q_schedule"."id", "django_q_schedule"."name", "django_q_schedule"."func", "django_q_schedule"."hook", "django_q_schedule"."args", "django_q_schedule"."kwargs", "django_q_schedule"."schedule_type", "django_q_schedule"."minutes", "django_q_schedule"."repeats", "django_q_schedule"."next_run", "django_q_schedule"."cron", "django_q_schedule"."task", "django_q_schedule"."cluster", "django_q_schedule"."intended_date_kwarg" FROM "django_q_schedule" WHERE "django_q_schedule"."name" LIKE 'plugin.%' ESCAPE '\' ORDER BY "django_q_schedule"."next_run" ASC; args=('plugin.%',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_APP' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_APP',) Saving setting 'InvenTreeSetting:ENABLE_PLUGINS_APP' to cache Registering IntegrationPlugin apps (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'SERVER\_RESTART\_REQUIRED' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('SERVER\\_RESTART\\_REQUIRED',) Loading InvenTree plugins (0.000) SELECT (1) AS "a" FROM "label_stockitemlabel" WHERE "label_stockitemlabel"."label" = 'label/inventree/stockitem/qr.html' LIMIT 1; args=('label/inventree/stockitem/qr.html',) (0.001) SELECT (1) AS "a" FROM "label_stocklocationlabel" WHERE "label_stocklocationlabel"."label" = 'label/inventree/stocklocation/qr.html' LIMIT 1; args=('label/inventree/stocklocation/qr.html',) (0.001) SELECT (1) AS "a" FROM "label_stocklocationlabel" WHERE "label_stocklocationlabel"."label" = 'label/inventree/stocklocation/qr_and_text.html' LIMIT 1; args=('label/inventree/stocklocation/qr_and_text.html',) (0.000) SELECT (1) AS "a" FROM "label_partlabel" WHERE "label_partlabel"."label" = 'label/inventree/part/part_label.html' LIMIT 1; args=('label/inventree/part/part_label.html',) (0.000) SELECT (1) AS "a" FROM "label_partlabel" WHERE "label_partlabel"."label" = 'label/inventree/part/part_label_code128.html' LIMIT 1; args=('label/inventree/part/part_label_code128.html',) (0.001) SELECT (1) AS "a" FROM "label_buildlinelabel" WHERE "label_buildlinelabel"."label" = 'label/inventree/buildline/buildline_label.html' LIMIT 1; args=('label/inventree/buildline/buildline_label.html',) (0.002) SELECT "part_bomitem"."id", "part_bomitem"."metadata", "part_bomitem"."part_id", "part_bomitem"."sub_part_id", "part_bomitem"."quantity", "part_bomitem"."optional", "part_bomitem"."consumable", "part_bomitem"."overage", "part_bomitem"."reference", "part_bomitem"."note", "part_bomitem"."checksum", "part_bomitem"."validated", "part_bomitem"."inherited", "part_bomitem"."allow_variants" FROM "part_bomitem" INNER JOIN "part_part" ON ("part_bomitem"."part_id" = "part_part"."id") INNER JOIN "part_part" T3 ON ("part_bomitem"."sub_part_id" = T3."id") WHERE (NOT "part_part"."trackable" AND T3."trackable"); args=() (0.002) SELECT COUNT(*) AS "__count" FROM "part_partpricing" WHERE "part_partpricing"."scheduled_for_update"; args=() (0.001) SELECT (1) AS "a" FROM "report_testreport" WHERE "report_testreport"."template" = 'report/inventree/test/inventree_test_report.html' LIMIT 1; args=('report/inventree/test/inventree_test_report.html',) (0.001) SELECT (1) AS "a" FROM "report_buildreport" WHERE "report_buildreport"."template" = 'report/inventree/build/inventree_build_order.html' LIMIT 1; args=('report/inventree/build/inventree_build_order.html',) (0.001) SELECT (1) AS "a" FROM "report_billofmaterialsreport" WHERE "report_billofmaterialsreport"."template" = 'report/inventree/bom/inventree_bill_of_materials_report.html' LIMIT 1; args=('report/inventree/bom/inventree_bill_of_materials_report.html',) (0.001) SELECT (1) AS "a" FROM "report_purchaseorderreport" WHERE "report_purchaseorderreport"."template" = 'report/inventree/purchaseorder/inventree_po_report.html' LIMIT 1; args=('report/inventree/purchaseorder/inventree_po_report.html',) (0.001) SELECT (1) AS "a" FROM "report_salesorderreport" WHERE "report_salesorderreport"."template" = 'report/inventree/salesorder/inventree_so_report.html' LIMIT 1; args=('report/inventree/salesorder/inventree_so_report.html',) (0.001) SELECT (1) AS "a" FROM "report_returnorderreport" WHERE "report_returnorderreport"."template" = 'report/inventree/returnorder/inventree_return_order_report.html' LIMIT 1; args=('report/inventree/returnorder/inventree_return_order_report.html',) (0.000) SELECT (1) AS "a" FROM "report_stocklocationreport" WHERE "report_stocklocationreport"."template" = 'report/inventree/slr/inventree_slr_report.html' LIMIT 1; args=('report/inventree/slr/inventree_slr_report.html',) (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset"; args=() (0.001) SELECT "auth_group"."id", "auth_group"."name" FROM "auth_group"; args=() (0.002) SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "auth_group_permissions" ON ("auth_permission"."id" = "auth_group_permissions"."permission_id") INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_group_permissions"."group_id" = 1 ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(1,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" IN (1, 2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112); args=(1, 2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112) (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'admin') LIMIT 21; args=(1, 'admin') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'part_category') LIMIT 21; args=(1, 'part_category') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'part') LIMIT 21; args=(1, 'part') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'stocktake') LIMIT 21; args=(1, 'stocktake') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'stock_location') LIMIT 21; args=(1, 'stock_location') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'stock') LIMIT 21; args=(1, 'stock') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'build') LIMIT 21; args=(1, 'build') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'purchase_order') LIMIT 21; args=(1, 'purchase_order') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'sales_order') LIMIT 21; args=(1, 'sales_order') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'return_order') LIMIT 21; args=(1, 'return_order') (0.000) SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "auth_group_permissions" ON ("auth_permission"."id" = "auth_group_permissions"."permission_id") INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_group_permissions"."group_id" = 2 ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(2,) (0.000) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" IN (1, 2, 3, 11, 12, 13, 14, 15, 16, 18, 19, 20, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112); args=(1, 2, 3, 11, 12, 13, 14, 15, 16, 18, 19, 20, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112) (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'admin') LIMIT 21; args=(2, 'admin') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'part_category') LIMIT 21; args=(2, 'part_category') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'part') LIMIT 21; args=(2, 'part') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'stocktake') LIMIT 21; args=(2, 'stocktake') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'stock_location') LIMIT 21; args=(2, 'stock_location') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'stock') LIMIT 21; args=(2, 'stock') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'build') LIMIT 21; args=(2, 'build') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'purchase_order') LIMIT 21; args=(2, 'purchase_order') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'sales_order') LIMIT 21; args=(2, 'sales_order') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'return_order') LIMIT 21; args=(2, 'return_order') (0.001) SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "auth_group_permissions" ON ("auth_permission"."id" = "auth_group_permissions"."permission_id") INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_group_permissions"."group_id" = 3 ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(3,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" IN (1, 2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112); args=(1, 2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112) (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'admin') LIMIT 21; args=(3, 'admin') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'part_category') LIMIT 21; args=(3, 'part_category') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'part') LIMIT 21; args=(3, 'part') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'stocktake') LIMIT 21; args=(3, 'stocktake') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'stock_location') LIMIT 21; args=(3, 'stock_location') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'stock') LIMIT 21; args=(3, 'stock') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'build') LIMIT 21; args=(3, 'build') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'purchase_order') LIMIT 21; args=(3, 'purchase_order') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'sales_order') LIMIT 21; args=(3, 'sales_order') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'return_order') LIMIT 21; args=(3, 'return_order') (0.001) SELECT "auth_group"."id", "auth_group"."name" FROM "auth_group"; args=() (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'auth' AND "django_content_type"."model" = 'group') LIMIT 21; args=('auth', 'group') (0.000) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'auth' AND "django_content_type"."model" = 'user') LIMIT 21; args=('auth', 'user') (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 1 AND "users_owner"."owner_type_id" = 64) LIMIT 21; args=(1, 64) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 2 AND "users_owner"."owner_type_id" = 64) LIMIT 21; args=(2, 64) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 3 AND "users_owner"."owner_type_id" = 64) LIMIT 21; args=(3, 64) (0.003) SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user"; args=() (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 1 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(1, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 2 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(2, 65) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 3 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(3, 65) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 4 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(4, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 5 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(5, 65) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 6 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(6, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 8 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(8, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 9 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(9, 65) (0.001) SELECT "django_q_schedule"."id", "django_q_schedule"."name", "django_q_schedule"."func", "django_q_schedule"."hook", "django_q_schedule"."args", "django_q_schedule"."kwargs", "django_q_schedule"."schedule_type", "django_q_schedule"."minutes", "django_q_schedule"."repeats", "django_q_schedule"."next_run", "django_q_schedule"."cron", "django_q_schedule"."task", "django_q_schedule"."cluster", "django_q_schedule"."intended_date_kwarg" FROM "django_q_schedule" WHERE "django_q_schedule"."func" IN ('InvenTree.tasks.delete_expired_sessions', 'stock.tasks.delete_old_stock_items'); args=('InvenTree.tasks.delete_expired_sessions', 'stock.tasks.delete_old_stock_items') (0.000) BEGIN; args=None Starting background tasks... (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.heartbeat' LIMIT 1; args=('InvenTree.tasks.heartbeat',) Scheduled task 'InvenTree.tasks.heartbeat' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'I', "minutes" = 5, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.heartbeat'; args=('I', 5, -1, 'InvenTree.tasks.heartbeat') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_successful_tasks' LIMIT 1; args=('InvenTree.tasks.delete_successful_tasks',) Scheduled task 'InvenTree.tasks.delete_successful_tasks' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_successful_tasks'; args=('D', -1, 'InvenTree.tasks.delete_successful_tasks') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_failed_tasks' LIMIT 1; args=('InvenTree.tasks.delete_failed_tasks',) Scheduled task 'InvenTree.tasks.delete_failed_tasks' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_failed_tasks'; args=('D', -1, 'InvenTree.tasks.delete_failed_tasks') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_error_logs' LIMIT 1; args=('InvenTree.tasks.delete_old_error_logs',) Scheduled task 'InvenTree.tasks.delete_old_error_logs' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_error_logs'; args=('D', -1, 'InvenTree.tasks.delete_old_error_logs') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_notifications' LIMIT 1; args=('InvenTree.tasks.delete_old_notifications',) Scheduled task 'InvenTree.tasks.delete_old_notifications' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_notifications'; args=('D', -1, 'InvenTree.tasks.delete_old_notifications') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_updates' LIMIT 1; args=('InvenTree.tasks.check_for_updates',) Scheduled task 'InvenTree.tasks.check_for_updates' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_updates'; args=('D', -1, 'InvenTree.tasks.check_for_updates') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.update_exchange_rates' LIMIT 1; args=('InvenTree.tasks.update_exchange_rates',) Scheduled task 'InvenTree.tasks.update_exchange_rates' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.update_exchange_rates'; args=('D', -1, 'InvenTree.tasks.update_exchange_rates') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.run_backup' LIMIT 1; args=('InvenTree.tasks.run_backup',) Scheduled task 'InvenTree.tasks.run_backup' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.run_backup'; args=('D', -1, 'InvenTree.tasks.run_backup') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_migrations' LIMIT 1; args=('InvenTree.tasks.check_for_migrations',) Scheduled task 'InvenTree.tasks.check_for_migrations' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_migrations'; args=('D', -1, 'InvenTree.tasks.check_for_migrations') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'part.tasks.check_missing_pricing' LIMIT 1; args=('part.tasks.check_missing_pricing',) Scheduled task 'part.tasks.check_missing_pricing' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'part.tasks.check_missing_pricing'; args=('D', -1, 'part.tasks.check_missing_pricing') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'part.tasks.scheduled_stocktake_reports' LIMIT 1; args=('part.tasks.scheduled_stocktake_reports',) Scheduled task 'part.tasks.scheduled_stocktake_reports' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'part.tasks.scheduled_stocktake_reports'; args=('D', -1, 'part.tasks.scheduled_stocktake_reports') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'build.tasks.check_overdue_build_orders' LIMIT 1; args=('build.tasks.check_overdue_build_orders',) Scheduled task 'build.tasks.check_overdue_build_orders' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'build.tasks.check_overdue_build_orders'; args=('D', -1, 'build.tasks.check_overdue_build_orders') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notifications' LIMIT 1; args=('common.tasks.delete_old_notifications',) Scheduled task 'common.tasks.delete_old_notifications' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notifications'; args=('D', -1, 'common.tasks.delete_old_notifications') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'common.tasks.update_news_feed' LIMIT 1; args=('common.tasks.update_news_feed',) Scheduled task 'common.tasks.update_news_feed' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'common.tasks.update_news_feed'; args=('D', -1, 'common.tasks.update_news_feed') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notes_images' LIMIT 1; args=('common.tasks.delete_old_notes_images',) Scheduled task 'common.tasks.delete_old_notes_images' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notes_images'; args=('D', -1, 'common.tasks.delete_old_notes_images') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'label.tasks.cleanup_old_label_outputs' LIMIT 1; args=('label.tasks.cleanup_old_label_outputs',) Scheduled task 'label.tasks.cleanup_old_label_outputs' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'label.tasks.cleanup_old_label_outputs'; args=('D', -1, 'label.tasks.cleanup_old_label_outputs') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_purchase_orders' LIMIT 1; args=('order.tasks.check_overdue_purchase_orders',) Scheduled task 'order.tasks.check_overdue_purchase_orders' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_purchase_orders'; args=('D', -1, 'order.tasks.check_overdue_purchase_orders') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_sales_orders' LIMIT 1; args=('order.tasks.check_overdue_sales_orders',) Scheduled task 'order.tasks.check_overdue_sales_orders' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_sales_orders'; args=('D', -1, 'order.tasks.check_overdue_sales_orders') (0.013) INSERT INTO "django_q_ormq" ("key", "payload", "lock") VALUES ('InvenTree', 'gAWV1QAAAAAAAAB9lCiMAmlklIwgNTJiNDdkM2M5Y2NiNGMxNWJmNTg2YWMwYjdlNTVlZGSUjARuYW1llIweb3JlZ29uLWF1dHVtbi1mb3VydGVlbi1zcGVha2VylIwEZnVuY5SMD0ludmVuVHJlZS50YXNrc5SMCWhlYXJ0YmVhdJSTlIwEYXJnc5QpjAZrd2FyZ3OUfZSMB3N0YXJ0ZWSUjAhkYXRldGltZZSMCGRhdGV0aW1llJOUQwoH5woIEx84DMxqlIwEcHl0epSMBF9VVEOUk5QpUpSGlFKUdS4:1qpZVM:2FFbZPu0V4XCoPsKmDISektNN0xPkzsi50UWK4gxvus', '2023-10-08 19:31:56.840849'); args=['InvenTree', 'gAWV1QAAAAAAAAB9lCiMAmlklIwgNTJiNDdkM2M5Y2NiNGMxNWJmNTg2YWMwYjdlNTVlZGSUjARuYW1llIweb3JlZ29uLWF1dHVtbi1mb3VydGVlbi1zcGVha2VylIwEZnVuY5SMD0ludmVuVHJlZS50YXNrc5SMCWhlYXJ0YmVhdJSTlIwEYXJnc5QpjAZrd2FyZ3OUfZSMB3N0YXJ0ZWSUjAhkYXRldGltZZSMCGRhdGV0aW1llJOUQwoH5woIEx84DMxqlIwEcHl0epSMBF9VVEOUk5QpUpSGlFKUdS4:1qpZVM:2FFbZPu0V4XCoPsKmDISektNN0xPkzsi50UWK4gxvus', '2023-10-08 19:31:56.840849'] Enqueued [InvenTree] 11289 Pushed ('oregon-autumn-fourteen-speaker', '52b47d3c9ccb4c15bf586ac0b7e55edd') Started 18 scheduled background tasks... (0.000) SELECT (1) AS "a" FROM "exchange_exchangebackend" WHERE "exchange_exchangebackend"."name" = 'InvenTreeExchange' LIMIT 1; args=('InvenTreeExchange',) (0.001) SELECT "exchange_exchangebackend"."name", "exchange_exchangebackend"."last_update", "exchange_exchangebackend"."base_currency" FROM "exchange_exchangebackend" WHERE "exchange_exchangebackend"."name" = 'InvenTreeExchange' ORDER BY "exchange_exchangebackend"."name" ASC LIMIT 1; args=('InvenTreeExchange',) (0.007) SELECT (1) AS "a" FROM "django_q_task" WHERE ("django_q_task"."success" AND "django_q_task"."started" >= '2023-10-08 19:21:56.864532') LIMIT 1; args=('2023-10-08 19:21:56.864532',) Checking for pending database migrations Checking plugin registry hash (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'settingstest' AND "plugin_pluginconfig"."name" = 'SettingsTest') LIMIT 21; args=('settingstest', 'SettingsTest') (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-view-test' AND "plugin_pluginconfig"."name" = 'InvenTreeViewTestPlugin') LIMIT 21; args=('inventree-view-test', 'InvenTreeViewTestPlugin') (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'cups' AND "plugin_pluginconfig"."name" = 'CupsLabels') LIMIT 21; args=('cups', 'CupsLabels') (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-supplier-plugin' AND "plugin_pluginconfig"."name" = 'InvenTreeSupplierPlugin') LIMIT 21; args=('inventree-supplier-plugin', 'InvenTreeSupplierPlugin') (0.000) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-bulk-plugin' AND "plugin_pluginconfig"."name" = 'InvenTreeBulkPlugin') LIMIT 21; args=('inventree-bulk-plugin', 'InvenTreeBulkPlugin') (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_URL' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_URL',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_NAVIGATION' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_NAVIGATION',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_APP' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_APP',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_SCHEDULE' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_SCHEDULE',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_EVENTS' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_EVENTS',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE '\_PLUGIN\_REGISTRY\_HASH' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('\\_PLUGIN\\_REGISTRY\\_HASH',) Plugin registry hash has changed - reloading Skipping reload - plugin registry is currently loading (0.000) SELECT name, type FROM sqlite_master WHERE type in ('table', 'view') AND NOT name='sqlite_sequence' ORDER BY name; args=None (0.000) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=() There are 0 pending migrations (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE '\_PENDING\_MIGRATIONS' ESCAPE '\' LIMIT 21; args=('\\_PENDING\\_MIGRATIONS',) (0.001) SELECT (1) AS "a" FROM "common_inventreesetting" WHERE ("common_inventreesetting"."key" = '_PENDING_MIGRATIONS' AND NOT ("common_inventreesetting"."id" = 121)) LIMIT 1; args=('_PENDING_MIGRATIONS', 121) (0.002) SELECT (1) AS "a" FROM "common_inventreesetting" WHERE ("common_inventreesetting"."key" LIKE '\_PENDING\_MIGRATIONS' ESCAPE '\' AND NOT ("common_inventreesetting"."id" = 121)) LIMIT 1; args=('\\_PENDING\\_MIGRATIONS', 121) (0.008) UPDATE "common_inventreesetting" SET "value" = '0', "key" = '_PENDING_MIGRATIONS' WHERE "common_inventreesetting"."id" = 121; args=('0', '_PENDING_MIGRATIONS', 121) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_EVENTS' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_EVENTS',) Saving setting 'InvenTreeSetting:ENABLE_PLUGINS_EVENTS' to cache Event triggered: 'common_inventreesetting.saved' (0.014) INSERT INTO "django_q_ormq" ("key", "payload", "lock") VALUES ('InvenTree', 'gAWVHgEAAAAAAAB9lCiMAmlklIwgN2M2NWMzNjJhYTRjNGQ4NjkyNzNmMGQ4ZDAyYmJhMjKUjARuYW1llIwXcmVkLWNyYXp5LXNpeHRlZW4taW5kaWGUjARmdW5jlIwYcGx1Z2luLmJhc2UuZXZlbnQuZXZlbnRzlIwOcmVnaXN0ZXJfZXZlbnSUk5SMBGFyZ3OUjB1jb21tb25faW52ZW50cmVlc2V0dGluZy5zYXZlZJSFlIwGa3dhcmdzlH2UKGgBS3mMBW1vZGVslIwQSW52ZW5UcmVlU2V0dGluZ5R1jAdzdGFydGVklIwIZGF0ZXRpbWWUjAhkYXRldGltZZSTlEMKB-cKCBMfOQrWcpSMBHB5dHqUjARfVVRDlJOUKVKUhpRSlHUu:1qpZVN:BJTxi9ayFzSR0jDQF3BvrmrVmw-ED2HGJt7RQiSkt0k', '2023-10-08 19:31:57.712523'); args=['InvenTree', 'gAWVHgEAAAAAAAB9lCiMAmlklIwgN2M2NWMzNjJhYTRjNGQ4NjkyNzNmMGQ4ZDAyYmJhMjKUjARuYW1llIwXcmVkLWNyYXp5LXNpeHRlZW4taW5kaWGUjARmdW5jlIwYcGx1Z2luLmJhc2UuZXZlbnQuZXZlbnRzlIwOcmVnaXN0ZXJfZXZlbnSUk5SMBGFyZ3OUjB1jb21tb25faW52ZW50cmVlc2V0dGluZy5zYXZlZJSFlIwGa3dhcmdzlH2UKGgBS3mMBW1vZGVslIwQSW52ZW5UcmVlU2V0dGluZ5R1jAdzdGFydGVklIwIZGF0ZXRpbWWUjAhkYXRldGltZZSTlEMKB-cKCBMfOQrWcpSMBHB5dHqUjARfVVRDlJOUKVKUhpRSlHUu:1qpZVN:BJTxi9ayFzSR0jDQF3BvrmrVmw-ED2HGJt7RQiSkt0k', '2023-10-08 19:31:57.712523'] Enqueued [InvenTree] 11290 Pushed ('red-crazy-sixteen-india', '7c65c362aa4c4d869273f0d8d02bba22') Saving setting 'InvenTreeSetting:_PENDING_MIGRATIONS' to cache Collecting notification methods Found 3 notification methods (0.001) SELECT "common_customunit"."id", "common_customunit"."name", "common_customunit"."symbol", "common_customunit"."definition" FROM "common_customunit"; args=() Redefining 'Ohm' () Loaded unit registry in 1.3089783191680908.3f s (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_URL' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_URL',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_URL' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_URL',) Saving setting 'InvenTreeSetting:ENABLE_PLUGINS_URL' to cache Registering UrlsMixin Plugin (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_URL' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_URL',) Done activating Finished loading plugins Event triggered: 'plugins_loaded' (0.017) INSERT INTO "django_q_ormq" ("key", "payload", "lock") VALUES ('InvenTree', 'gAWV8gAAAAAAAAB9lCiMAmlklIwgMTczNzg1ODA2Nzc3NDZjYWI4MWM4MWI0ODc5YWQ1ZWKUjARuYW1llIwbY2hhcmxpZS1uaW5ldGVlbi1tb25rZXktY2F0lIwEZnVuY5SMGHBsdWdpbi5iYXNlLmV2ZW50LmV2ZW50c5SMDnJlZ2lzdGVyX2V2ZW50lJOUjARhcmdzlIwOcGx1Z2luc19sb2FkZWSUhZSMBmt3YXJnc5R9lIwHc3RhcnRlZJSMCGRhdGV0aW1llIwIZGF0ZXRpbWWUk5RDCgfnCggTHzsB25-UjARweXR6lIwEX1VUQ5STlClSlIaUUpR1Lg:1qpZVP:o8QnJEphRZVjeT4ZS3s_ymp1gRbHm9EAko5hcu7UYzk', '2023-10-08 19:31:59.124090'); args=['InvenTree', 'gAWV8gAAAAAAAAB9lCiMAmlklIwgMTczNzg1ODA2Nzc3NDZjYWI4MWM4MWI0ODc5YWQ1ZWKUjARuYW1llIwbY2hhcmxpZS1uaW5ldGVlbi1tb25rZXktY2F0lIwEZnVuY5SMGHBsdWdpbi5iYXNlLmV2ZW50LmV2ZW50c5SMDnJlZ2lzdGVyX2V2ZW50lJOUjARhcmdzlIwOcGx1Z2luc19sb2FkZWSUhZSMBmt3YXJnc5R9lIwHc3RhcnRlZJSMCGRhdGV0aW1llIwIZGF0ZXRpbWWUk5RDCgfnCggTHzsB25-UjARweXR6lIwEX1VUQ5STlClSlIaUUpR1Lg:1qpZVP:o8QnJEphRZVjeT4ZS3s_ymp1gRbHm9EAko5hcu7UYzk', '2023-10-08 19:31:59.124090'] Enqueued [InvenTree] 11291 Pushed ('charlie-nineteen-monkey-cat', '17378580677746cab81c81b4879ad5eb') (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'settingstest' AND "plugin_pluginconfig"."name" = 'SettingsTest') LIMIT 21; args=('settingstest', 'SettingsTest') (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-view-test' AND "plugin_pluginconfig"."name" = 'InvenTreeViewTestPlugin') LIMIT 21; args=('inventree-view-test', 'InvenTreeViewTestPlugin') (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'cups' AND "plugin_pluginconfig"."name" = 'CupsLabels') LIMIT 21; args=('cups', 'CupsLabels') (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-supplier-plugin' AND "plugin_pluginconfig"."name" = 'InvenTreeSupplierPlugin') LIMIT 21; args=('inventree-supplier-plugin', 'InvenTreeSupplierPlugin') (0.001) SELECT "plugin_pluginconfig"."id", "plugin_pluginconfig"."metadata", "plugin_pluginconfig"."key", "plugin_pluginconfig"."name", "plugin_pluginconfig"."active" FROM "plugin_pluginconfig" WHERE ("plugin_pluginconfig"."key" = 'inventree-bulk-plugin' AND "plugin_pluginconfig"."name" = 'InvenTreeBulkPlugin') LIMIT 21; args=('inventree-bulk-plugin', 'InvenTreeBulkPlugin') (0.003) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_URL' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_URL',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_NAVIGATION' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_NAVIGATION',) (0.000) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_APP' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_APP',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_SCHEDULE' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_SCHEDULE',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE 'ENABLE\_PLUGINS\_EVENTS' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('ENABLE\\_PLUGINS\\_EVENTS',) (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE '\_PLUGIN\_REGISTRY\_HASH' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('\\_PLUGIN\\_REGISTRY\\_HASH',) Updating plugin registry hash: c967781443c215b16c477cef51dce746 (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE '\_PLUGIN\_REGISTRY\_HASH' ESCAPE '\' LIMIT 21; args=('\\_PLUGIN\\_REGISTRY\\_HASH',) (0.001) SELECT (1) AS "a" FROM "common_inventreesetting" WHERE ("common_inventreesetting"."key" = '_PLUGIN_REGISTRY_HASH' AND NOT ("common_inventreesetting"."id" = 122)) LIMIT 1; args=('_PLUGIN_REGISTRY_HASH', 122) (0.001) SELECT (1) AS "a" FROM "common_inventreesetting" WHERE ("common_inventreesetting"."key" LIKE '\_PLUGIN\_REGISTRY\_HASH' ESCAPE '\' AND NOT ("common_inventreesetting"."id" = 122)) LIMIT 1; args=('\\_PLUGIN\\_REGISTRY\\_HASH', 122) (0.010) UPDATE "common_inventreesetting" SET "value" = 'c967781443c215b16c477cef51dce746', "key" = '_PLUGIN_REGISTRY_HASH' WHERE "common_inventreesetting"."id" = 122; args=('c967781443c215b16c477cef51dce746', '_PLUGIN_REGISTRY_HASH', 122) Event triggered: 'common_inventreesetting.saved' (0.014) INSERT INTO "django_q_ormq" ("key", "payload", "lock") VALUES ('InvenTree', 'gAWVJAEAAAAAAAB9lCiMAmlklIwgZDViZWI2ZjliODY4NDNiNWExNGY2MjBiYmE5NWE2OWOUjARuYW1llIwdY2VpbGluZy1jaGlja2VuLW1heS1iZXJ5bGxpdW2UjARmdW5jlIwYcGx1Z2luLmJhc2UuZXZlbnQuZXZlbnRzlIwOcmVnaXN0ZXJfZXZlbnSUk5SMBGFyZ3OUjB1jb21tb25faW52ZW50cmVlc2V0dGluZy5zYXZlZJSFlIwGa3dhcmdzlH2UKGgBS3qMBW1vZGVslIwQSW52ZW5UcmVlU2V0dGluZ5R1jAdzdGFydGVklIwIZGF0ZXRpbWWUjAhkYXRldGltZZSTlEMKB-cKCBMfOwr6pZSMBHB5dHqUjARfVVRDlJOUKVKUhpRSlHUu:1qpZVP:HD4my9T4ytY0E6TSeBRyTI9xeAT8DMQ7zC9yrv5kbng', '2023-10-08 19:31:59.721686'); args=['InvenTree', 'gAWVJAEAAAAAAAB9lCiMAmlklIwgZDViZWI2ZjliODY4NDNiNWExNGY2MjBiYmE5NWE2OWOUjARuYW1llIwdY2VpbGluZy1jaGlja2VuLW1heS1iZXJ5bGxpdW2UjARmdW5jlIwYcGx1Z2luLmJhc2UuZXZlbnQuZXZlbnRzlIwOcmVnaXN0ZXJfZXZlbnSUk5SMBGFyZ3OUjB1jb21tb25faW52ZW50cmVlc2V0dGluZy5zYXZlZJSFlIwGa3dhcmdzlH2UKGgBS3qMBW1vZGVslIwQSW52ZW5UcmVlU2V0dGluZ5R1jAdzdGFydGVklIwIZGF0ZXRpbWWUjAhkYXRldGltZZSTlEMKB-cKCBMfOwr6pZSMBHB5dHqUjARfVVRDlJOUKVKUhpRSlHUu:1qpZVP:HD4my9T4ytY0E6TSeBRyTI9xeAT8DMQ7zC9yrv5kbng', '2023-10-08 19:31:59.721686'] Enqueued [InvenTree] 11292 Pushed ('ceiling-chicken-may-beryllium', 'd5beb6f9b86843b5a14f620bba95a69c') Saving setting 'InvenTreeSetting:_PLUGIN_REGISTRY_HASH' to cache Plugin Registry: Loaded 9 plugins (0.001) SELECT (1) AS "a" FROM "label_stockitemlabel" WHERE "label_stockitemlabel"."label" = 'label/inventree/stockitem/qr.html' LIMIT 1; args=('label/inventree/stockitem/qr.html',) (0.001) SELECT (1) AS "a" FROM "label_stocklocationlabel" WHERE "label_stocklocationlabel"."label" = 'label/inventree/stocklocation/qr.html' LIMIT 1; args=('label/inventree/stocklocation/qr.html',) (0.001) SELECT (1) AS "a" FROM "label_stocklocationlabel" WHERE "label_stocklocationlabel"."label" = 'label/inventree/stocklocation/qr_and_text.html' LIMIT 1; args=('label/inventree/stocklocation/qr_and_text.html',) (0.000) SELECT (1) AS "a" FROM "label_partlabel" WHERE "label_partlabel"."label" = 'label/inventree/part/part_label.html' LIMIT 1; args=('label/inventree/part/part_label.html',) (0.000) SELECT (1) AS "a" FROM "label_partlabel" WHERE "label_partlabel"."label" = 'label/inventree/part/part_label_code128.html' LIMIT 1; args=('label/inventree/part/part_label_code128.html',) (0.001) SELECT (1) AS "a" FROM "label_buildlinelabel" WHERE "label_buildlinelabel"."label" = 'label/inventree/buildline/buildline_label.html' LIMIT 1; args=('label/inventree/buildline/buildline_label.html',) (0.002) SELECT "part_bomitem"."id", "part_bomitem"."metadata", "part_bomitem"."part_id", "part_bomitem"."sub_part_id", "part_bomitem"."quantity", "part_bomitem"."optional", "part_bomitem"."consumable", "part_bomitem"."overage", "part_bomitem"."reference", "part_bomitem"."note", "part_bomitem"."checksum", "part_bomitem"."validated", "part_bomitem"."inherited", "part_bomitem"."allow_variants" FROM "part_bomitem" INNER JOIN "part_part" ON ("part_bomitem"."part_id" = "part_part"."id") INNER JOIN "part_part" T3 ON ("part_bomitem"."sub_part_id" = T3."id") WHERE (NOT "part_part"."trackable" AND T3."trackable"); args=() (0.002) SELECT COUNT(*) AS "__count" FROM "part_partpricing" WHERE "part_partpricing"."scheduled_for_update"; args=() (0.001) SELECT (1) AS "a" FROM "report_testreport" WHERE "report_testreport"."template" = 'report/inventree/test/inventree_test_report.html' LIMIT 1; args=('report/inventree/test/inventree_test_report.html',) (0.001) SELECT (1) AS "a" FROM "report_buildreport" WHERE "report_buildreport"."template" = 'report/inventree/build/inventree_build_order.html' LIMIT 1; args=('report/inventree/build/inventree_build_order.html',) (0.001) SELECT (1) AS "a" FROM "report_billofmaterialsreport" WHERE "report_billofmaterialsreport"."template" = 'report/inventree/bom/inventree_bill_of_materials_report.html' LIMIT 1; args=('report/inventree/bom/inventree_bill_of_materials_report.html',) (0.001) SELECT (1) AS "a" FROM "report_purchaseorderreport" WHERE "report_purchaseorderreport"."template" = 'report/inventree/purchaseorder/inventree_po_report.html' LIMIT 1; args=('report/inventree/purchaseorder/inventree_po_report.html',) (0.001) SELECT (1) AS "a" FROM "report_salesorderreport" WHERE "report_salesorderreport"."template" = 'report/inventree/salesorder/inventree_so_report.html' LIMIT 1; args=('report/inventree/salesorder/inventree_so_report.html',) (0.001) SELECT (1) AS "a" FROM "report_returnorderreport" WHERE "report_returnorderreport"."template" = 'report/inventree/returnorder/inventree_return_order_report.html' LIMIT 1; args=('report/inventree/returnorder/inventree_return_order_report.html',) (0.000) SELECT (1) AS "a" FROM "report_stocklocationreport" WHERE "report_stocklocationreport"."template" = 'report/inventree/slr/inventree_slr_report.html' LIMIT 1; args=('report/inventree/slr/inventree_slr_report.html',) (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset"; args=() (0.001) SELECT "auth_group"."id", "auth_group"."name" FROM "auth_group"; args=() (0.003) SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "auth_group_permissions" ON ("auth_permission"."id" = "auth_group_permissions"."permission_id") INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_group_permissions"."group_id" = 1 ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(1,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" IN (1, 2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112); args=(1, 2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112) (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'admin') LIMIT 21; args=(1, 'admin') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'part_category') LIMIT 21; args=(1, 'part_category') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'part') LIMIT 21; args=(1, 'part') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'stocktake') LIMIT 21; args=(1, 'stocktake') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'stock_location') LIMIT 21; args=(1, 'stock_location') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'stock') LIMIT 21; args=(1, 'stock') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'build') LIMIT 21; args=(1, 'build') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'purchase_order') LIMIT 21; args=(1, 'purchase_order') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'sales_order') LIMIT 21; args=(1, 'sales_order') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 1 AND "users_ruleset"."name" = 'return_order') LIMIT 21; args=(1, 'return_order') (0.000) SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "auth_group_permissions" ON ("auth_permission"."id" = "auth_group_permissions"."permission_id") INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_group_permissions"."group_id" = 2 ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(2,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" IN (1, 2, 3, 11, 12, 13, 14, 15, 16, 18, 19, 20, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112); args=(1, 2, 3, 11, 12, 13, 14, 15, 16, 18, 19, 20, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112) (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'admin') LIMIT 21; args=(2, 'admin') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'part_category') LIMIT 21; args=(2, 'part_category') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'part') LIMIT 21; args=(2, 'part') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'stocktake') LIMIT 21; args=(2, 'stocktake') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'stock_location') LIMIT 21; args=(2, 'stock_location') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'stock') LIMIT 21; args=(2, 'stock') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'build') LIMIT 21; args=(2, 'build') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'purchase_order') LIMIT 21; args=(2, 'purchase_order') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'sales_order') LIMIT 21; args=(2, 'sales_order') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 2 AND "users_ruleset"."name" = 'return_order') LIMIT 21; args=(2, 'return_order') (0.001) SELECT "auth_permission"."id", "auth_permission"."name", "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "auth_group_permissions" ON ("auth_permission"."id" = "auth_group_permissions"."permission_id") INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_group_permissions"."group_id" = 3 ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(3,) (0.001) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."id" IN (1, 2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112); args=(1, 2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 63, 64, 65, 68, 69, 70, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 109, 112) (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'admin') LIMIT 21; args=(3, 'admin') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'part_category') LIMIT 21; args=(3, 'part_category') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'part') LIMIT 21; args=(3, 'part') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'stocktake') LIMIT 21; args=(3, 'stocktake') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'stock_location') LIMIT 21; args=(3, 'stock_location') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'stock') LIMIT 21; args=(3, 'stock') (0.001) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'build') LIMIT 21; args=(3, 'build') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'purchase_order') LIMIT 21; args=(3, 'purchase_order') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'sales_order') LIMIT 21; args=(3, 'sales_order') (0.000) SELECT "users_ruleset"."id", "users_ruleset"."name", "users_ruleset"."group_id", "users_ruleset"."can_view", "users_ruleset"."can_add", "users_ruleset"."can_change", "users_ruleset"."can_delete" FROM "users_ruleset" WHERE ("users_ruleset"."group_id" = 3 AND "users_ruleset"."name" = 'return_order') LIMIT 21; args=(3, 'return_order') (0.000) SELECT "auth_group"."id", "auth_group"."name" FROM "auth_group"; args=() (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 1 AND "users_owner"."owner_type_id" = 64) LIMIT 21; args=(1, 64) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 2 AND "users_owner"."owner_type_id" = 64) LIMIT 21; args=(2, 64) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 3 AND "users_owner"."owner_type_id" = 64) LIMIT 21; args=(3, 64) (0.000) SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user"; args=() (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 1 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(1, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 2 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(2, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 3 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(3, 65) (0.001) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 4 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(4, 65) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 5 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(5, 65) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 6 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(6, 65) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 8 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(8, 65) (0.000) SELECT "users_owner"."id", "users_owner"."owner_type_id", "users_owner"."owner_id" FROM "users_owner" WHERE ("users_owner"."owner_id" = 9 AND "users_owner"."owner_type_id" = 65) LIMIT 21; args=(9, 65) (0.001) SELECT "django_q_schedule"."id", "django_q_schedule"."name", "django_q_schedule"."func", "django_q_schedule"."hook", "django_q_schedule"."args", "django_q_schedule"."kwargs", "django_q_schedule"."schedule_type", "django_q_schedule"."minutes", "django_q_schedule"."repeats", "django_q_schedule"."next_run", "django_q_schedule"."cron", "django_q_schedule"."task", "django_q_schedule"."cluster", "django_q_schedule"."intended_date_kwarg" FROM "django_q_schedule" WHERE "django_q_schedule"."func" IN ('InvenTree.tasks.delete_expired_sessions', 'stock.tasks.delete_old_stock_items'); args=('InvenTree.tasks.delete_expired_sessions', 'stock.tasks.delete_old_stock_items') (0.000) BEGIN; args=None Starting background tasks... (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.heartbeat' LIMIT 1; args=('InvenTree.tasks.heartbeat',) Scheduled task 'InvenTree.tasks.heartbeat' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'I', "minutes" = 5, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.heartbeat'; args=('I', 5, -1, 'InvenTree.tasks.heartbeat') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_successful_tasks' LIMIT 1; args=('InvenTree.tasks.delete_successful_tasks',) Scheduled task 'InvenTree.tasks.delete_successful_tasks' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_successful_tasks'; args=('D', -1, 'InvenTree.tasks.delete_successful_tasks') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_failed_tasks' LIMIT 1; args=('InvenTree.tasks.delete_failed_tasks',) Scheduled task 'InvenTree.tasks.delete_failed_tasks' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_failed_tasks'; args=('D', -1, 'InvenTree.tasks.delete_failed_tasks') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_error_logs' LIMIT 1; args=('InvenTree.tasks.delete_old_error_logs',) Scheduled task 'InvenTree.tasks.delete_old_error_logs' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_error_logs'; args=('D', -1, 'InvenTree.tasks.delete_old_error_logs') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_notifications' LIMIT 1; args=('InvenTree.tasks.delete_old_notifications',) Scheduled task 'InvenTree.tasks.delete_old_notifications' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.delete_old_notifications'; args=('D', -1, 'InvenTree.tasks.delete_old_notifications') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_updates' LIMIT 1; args=('InvenTree.tasks.check_for_updates',) Scheduled task 'InvenTree.tasks.check_for_updates' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_updates'; args=('D', -1, 'InvenTree.tasks.check_for_updates') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.update_exchange_rates' LIMIT 1; args=('InvenTree.tasks.update_exchange_rates',) Scheduled task 'InvenTree.tasks.update_exchange_rates' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.update_exchange_rates'; args=('D', -1, 'InvenTree.tasks.update_exchange_rates') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.run_backup' LIMIT 1; args=('InvenTree.tasks.run_backup',) Scheduled task 'InvenTree.tasks.run_backup' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.run_backup'; args=('D', -1, 'InvenTree.tasks.run_backup') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_migrations' LIMIT 1; args=('InvenTree.tasks.check_for_migrations',) Scheduled task 'InvenTree.tasks.check_for_migrations' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'InvenTree.tasks.check_for_migrations'; args=('D', -1, 'InvenTree.tasks.check_for_migrations') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'part.tasks.check_missing_pricing' LIMIT 1; args=('part.tasks.check_missing_pricing',) Scheduled task 'part.tasks.check_missing_pricing' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'part.tasks.check_missing_pricing'; args=('D', -1, 'part.tasks.check_missing_pricing') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'part.tasks.scheduled_stocktake_reports' LIMIT 1; args=('part.tasks.scheduled_stocktake_reports',) Scheduled task 'part.tasks.scheduled_stocktake_reports' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'part.tasks.scheduled_stocktake_reports'; args=('D', -1, 'part.tasks.scheduled_stocktake_reports') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'build.tasks.check_overdue_build_orders' LIMIT 1; args=('build.tasks.check_overdue_build_orders',) Scheduled task 'build.tasks.check_overdue_build_orders' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'build.tasks.check_overdue_build_orders'; args=('D', -1, 'build.tasks.check_overdue_build_orders') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notifications' LIMIT 1; args=('common.tasks.delete_old_notifications',) Scheduled task 'common.tasks.delete_old_notifications' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notifications'; args=('D', -1, 'common.tasks.delete_old_notifications') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'common.tasks.update_news_feed' LIMIT 1; args=('common.tasks.update_news_feed',) Scheduled task 'common.tasks.update_news_feed' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'common.tasks.update_news_feed'; args=('D', -1, 'common.tasks.update_news_feed') (0.000) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notes_images' LIMIT 1; args=('common.tasks.delete_old_notes_images',) Scheduled task 'common.tasks.delete_old_notes_images' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'common.tasks.delete_old_notes_images'; args=('D', -1, 'common.tasks.delete_old_notes_images') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'label.tasks.cleanup_old_label_outputs' LIMIT 1; args=('label.tasks.cleanup_old_label_outputs',) Scheduled task 'label.tasks.cleanup_old_label_outputs' already exists - updating! (0.001) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'label.tasks.cleanup_old_label_outputs'; args=('D', -1, 'label.tasks.cleanup_old_label_outputs') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_purchase_orders' LIMIT 1; args=('order.tasks.check_overdue_purchase_orders',) Scheduled task 'order.tasks.check_overdue_purchase_orders' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_purchase_orders'; args=('D', -1, 'order.tasks.check_overdue_purchase_orders') (0.001) SELECT (1) AS "a" FROM "django_q_schedule" WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_sales_orders' LIMIT 1; args=('order.tasks.check_overdue_sales_orders',) Scheduled task 'order.tasks.check_overdue_sales_orders' already exists - updating! (0.000) UPDATE "django_q_schedule" SET "schedule_type" = 'D', "minutes" = NULL, "repeats" = -1 WHERE "django_q_schedule"."func" = 'order.tasks.check_overdue_sales_orders'; args=('D', -1, 'order.tasks.check_overdue_sales_orders') (0.015) INSERT INTO "django_q_ormq" ("key", "payload", "lock") VALUES ('InvenTree', 'gAWV0QAAAAAAAAB9lCiMAmlklIwgZjM4NTU4ZTY3M2U1NGFlOGJlOGM3ODJhYzE0ZjhjODKUjARuYW1llIwac2l4LWRvbi1oeWRyb2dlbi1tYWduZXNpdW2UjARmdW5jlIwPSW52ZW5UcmVlLnRhc2tzlIwJaGVhcnRiZWF0lJOUjARhcmdzlCmMBmt3YXJnc5R9lIwHc3RhcnRlZJSMCGRhdGV0aW1llIwIZGF0ZXRpbWWUk5RDCgfnCggTIAAAcieUjARweXR6lIwEX1VUQ5STlClSlIaUUpR1Lg:1qpZVQ:nXUhnRDro88NKDRbebx86TofiEdBdG30MpqFTps81tA', '2023-10-08 19:32:00.030808'); args=['InvenTree', 'gAWV0QAAAAAAAAB9lCiMAmlklIwgZjM4NTU4ZTY3M2U1NGFlOGJlOGM3ODJhYzE0ZjhjODKUjARuYW1llIwac2l4LWRvbi1oeWRyb2dlbi1tYWduZXNpdW2UjARmdW5jlIwPSW52ZW5UcmVlLnRhc2tzlIwJaGVhcnRiZWF0lJOUjARhcmdzlCmMBmt3YXJnc5R9lIwHc3RhcnRlZJSMCGRhdGV0aW1llIwIZGF0ZXRpbWWUk5RDCgfnCggTIAAAcieUjARweXR6lIwEX1VUQ5STlClSlIaUUpR1Lg:1qpZVQ:nXUhnRDro88NKDRbebx86TofiEdBdG30MpqFTps81tA', '2023-10-08 19:32:00.030808'] Enqueued [InvenTree] 11293 Pushed ('six-don-hydrogen-magnesium', 'f38558e673e54ae8be8c782ac14f8c82') Started 18 scheduled background tasks... (0.001) SELECT (1) AS "a" FROM "exchange_exchangebackend" WHERE "exchange_exchangebackend"."name" = 'InvenTreeExchange' LIMIT 1; args=('InvenTreeExchange',) (0.002) SELECT "exchange_exchangebackend"."name", "exchange_exchangebackend"."last_update", "exchange_exchangebackend"."base_currency" FROM "exchange_exchangebackend" WHERE "exchange_exchangebackend"."name" = 'InvenTreeExchange' ORDER BY "exchange_exchangebackend"."name" ASC LIMIT 1; args=('InvenTreeExchange',) (0.009) SELECT (1) AS "a" FROM "django_q_task" WHERE ("django_q_task"."success" AND "django_q_task"."started" >= '2023-10-08 19:22:00.055003') LIMIT 1; args=('2023-10-08 19:22:00.055003',) Checking for pending database migrations Checking plugin registry hash (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE '\_PLUGIN\_REGISTRY\_HASH' ESCAPE '\' ORDER BY "common_inventreesetting"."id" ASC LIMIT 1; args=('\\_PLUGIN\\_REGISTRY\\_HASH',) (0.001) SELECT name, type FROM sqlite_master WHERE type in ('table', 'view') AND NOT name='sqlite_sequence' ORDER BY name; args=None (0.001) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=() There are 0 pending migrations (0.001) SELECT "common_inventreesetting"."id", "common_inventreesetting"."value", "common_inventreesetting"."key" FROM "common_inventreesetting" WHERE "common_inventreesetting"."key" LIKE '\_PENDING\_MIGRATIONS' ESCAPE '\' LIMIT 21; args=('\\_PENDING\\_MIGRATIONS',) (0.001) SELECT (1) AS "a" FROM "common_inventreesetting" WHERE ("common_inventreesetting"."key" = '_PENDING_MIGRATIONS' AND NOT ("common_inventreesetting"."id" = 121)) LIMIT 1; args=('_PENDING_MIGRATIONS', 121) (0.001) SELECT (1) AS "a" FROM "common_inventreesetting" WHERE ("common_inventreesetting"."key" LIKE '\_PENDING\_MIGRATIONS' ESCAPE '\' AND NOT ("common_inventreesetting"."id" = 121)) LIMIT 1; args=('\\_PENDING\\_MIGRATIONS', 121) (0.010) UPDATE "common_inventreesetting" SET "value" = '0', "key" = '_PENDING_MIGRATIONS' WHERE "common_inventreesetting"."id" = 121; args=('0', '_PENDING_MIGRATIONS', 121) Event triggered: 'common_inventreesetting.saved' (0.014) INSERT INTO "django_q_ormq" ("key", "payload", "lock") VALUES ('InvenTree', 'gAWVKAEAAAAAAAB9lCiMAmlklIwgYjkxZTg3NWYwMjBlNDdjNjk4YzYyY2Q2MmJlMDhiZDSUjARuYW1llIwhbWFnYXppbmUtbWlzc2lzc2lwcGktb25lLW1vdW50YWlulIwEZnVuY5SMGHBsdWdpbi5iYXNlLmV2ZW50LmV2ZW50c5SMDnJlZ2lzdGVyX2V2ZW50lJOUjARhcmdzlIwdY29tbW9uX2ludmVudHJlZXNldHRpbmcuc2F2ZWSUhZSMBmt3YXJnc5R9lChoAUt5jAVtb2RlbJSMEEludmVuVHJlZVNldHRpbmeUdYwHc3RhcnRlZJSMCGRhdGV0aW1llIwIZGF0ZXRpbWWUk5RDCgfnCggTIAAEnaeUjARweXR6lIwEX1VUQ5STlClSlIaUUpR1Lg:1qpZVQ:6O-94uj16ZUPIFFcte63nWVWgbnI_Kf0w3ZZzE2oIs4', '2023-10-08 19:32:00.304694'); args=['InvenTree', 'gAWVKAEAAAAAAAB9lCiMAmlklIwgYjkxZTg3NWYwMjBlNDdjNjk4YzYyY2Q2MmJlMDhiZDSUjARuYW1llIwhbWFnYXppbmUtbWlzc2lzc2lwcGktb25lLW1vdW50YWlulIwEZnVuY5SMGHBsdWdpbi5iYXNlLmV2ZW50LmV2ZW50c5SMDnJlZ2lzdGVyX2V2ZW50lJOUjARhcmdzlIwdY29tbW9uX2ludmVudHJlZXNldHRpbmcuc2F2ZWSUhZSMBmt3YXJnc5R9lChoAUt5jAVtb2RlbJSMEEludmVuVHJlZVNldHRpbmeUdYwHc3RhcnRlZJSMCGRhdGV0aW1llIwIZGF0ZXRpbWWUk5RDCgfnCggTIAAEnaeUjARweXR6lIwEX1VUQ5STlClSlIaUUpR1Lg:1qpZVQ:6O-94uj16ZUPIFFcte63nWVWgbnI_Kf0w3ZZzE2oIs4', '2023-10-08 19:32:00.304694'] Enqueued [InvenTree] 11294 Pushed ('magazine-mississippi-one-mountain', 'b91e875f020e47c698c62cd62be08bd4') Saving setting 'InvenTreeSetting:_PENDING_MIGRATIONS' to cache Collecting notification methods Found 3 notification methods Watching for file changes with StatReloader Watching for file changes with StatReloader Performing system checks... (0.008) SELECT "flags_flagstate"."id", "flags_flagstate"."name", "flags_flagstate"."condition", "flags_flagstate"."value", "flags_flagstate"."required" FROM "flags_flagstate"; args=() System check identified no issues (1 silenced). (0.001) SELECT name, type FROM sqlite_master WHERE type in ('table', 'view') AND NOT name='sqlite_sequence' ORDER BY name; args=None (0.001) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=() October 08, 2023 - 19:32:01 Django version 3.2.20, using settings 'InvenTree.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. ```
SchrodingersGat commented 1 year ago

A lot of improvements was made in this PR

Not sure what is going on with the currency setting - that is getting called a lot of times!

SchrodingersGat commented 1 year ago

So, at least for the INVENTREE_DEFAULT_CURRENCY field, here's what is happening:

The currency_code_default() method is getting called dozens of times during server start. This is for two main reasons:

So, the value of this function is being evaluated lots of times in quick succession. As the database is not ready (not yet loaded) and the value is not cached, then we are performing lots of database hits.

We should re-think how this function is implemented, so that we either don't need any database hits when initially loading the application, or we can develop some better caching strategy.

SchrodingersGat commented 1 year ago

With the linked PRs, this is now pretty good. DB hits have been significantly reduced on server start

wolflu05 commented 1 year ago

Thanks for improving this a lot. I collected all prs that are linked to this issue in a tasklist in the initial description.