Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

fix for #143 enabling backward migrations on dj50 #156

Merged
merged 1 commit into from
Sep 16, 2024

Conversation

shimizukawa
Copy link
Member

it worked.

@shimizukawa shimizukawa self-assigned this Sep 16, 2024
@shimizukawa
Copy link
Member Author

initial forward migration

(venv) @shimizukawa ➜ /workspaces/django-redshift-backend/examples/dj-sql-explorer (152-dj51) $ python manage.py migrate
(0.197) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
(0.168) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, explorer, sessions, testapp
Running migrations:
(0.168) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
CREATE TABLE "django_migrations" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "app" varchar(255) NOT NULL, "name" varchar(255) NOT NULL, "applied" timestamp with time zone NOT NULL) ; (params None)
(0.208) CREATE TABLE "django_migrations" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "app" varchar(255) NOT NULL, "name" varchar(255) NOT NULL, "applied" timestamp with time zone NOT NULL) ; args=None; alias=default
  Applying contenttypes.0001_initial...CREATE TABLE "django_content_type" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL, "app_label" varchar(100) NOT NULL, "model" varchar(100) NOT NULL) ; (params None)
(0.202) CREATE TABLE "django_content_type" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL, "app_label" varchar(100) NOT NULL, "model" varchar(100) NOT NULL) ; args=None; alias=default
ALTER TABLE "django_content_type" ADD CONSTRAINT "django_content_type_app_label_model_76bd3d3b_uniq" UNIQUE ("app_label", "model"); (params ())
(0.190) ALTER TABLE "django_content_type" ADD CONSTRAINT "django_content_type_app_label_model_76bd3d3b_uniq" UNIQUE ("app_label", "model"); args=(); alias=default
(0.167) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
(0.263) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('contenttypes', '0001_initial', '2024-09-16T22:40:17.103275+00:00'::timestamptz); args=['contenttypes', '0001_initial', datetime.datetime(2024, 9, 16, 22, 40, 17, 103275, tzinfo=datetime.timezone.utc)]; alias=default
(0.179) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0001_initial...CREATE TABLE "auth_permission" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "name" varchar(50) NOT NULL, "content_type_id" integer NOT NULL, "codename" varchar(100) NOT NULL) ; (params None)
(0.215) CREATE TABLE "auth_permission" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "name" varchar(50) NOT NULL, "content_type_id" integer NOT NULL, "codename" varchar(100) NOT NULL) ; args=None; alias=default
CREATE TABLE "auth_group" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "name" varchar(80) NOT NULL UNIQUE) ; (params None)
(0.216) CREATE TABLE "auth_group" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "name" varchar(80) NOT NULL UNIQUE) ; args=None; alias=default
CREATE TABLE "auth_group_permissions" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "group_id" integer NOT NULL, "permission_id" integer NOT NULL) ; (params None)
(0.203) CREATE TABLE "auth_group_permissions" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "group_id" integer NOT NULL, "permission_id" integer NOT NULL) ; args=None; alias=default
CREATE TABLE "auth_user" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "password" varchar(128) NOT NULL, "last_login" timestamp with time zone NOT NULL, "is_superuser" boolean NOT NULL, "username" varchar(30) NOT NULL UNIQUE, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL, "email" varchar(75) NOT NULL, "is_staff" boolean NOT NULL, "is_active" boolean NOT NULL, "date_joined" timestamp with time zone NOT NULL) ; (params None)
(0.206) CREATE TABLE "auth_user" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "password" varchar(128) NOT NULL, "last_login" timestamp with time zone NOT NULL, "is_superuser" boolean NOT NULL, "username" varchar(30) NOT NULL UNIQUE, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL, "email" varchar(75) NOT NULL, "is_staff" boolean NOT NULL, "is_active" boolean NOT NULL, "date_joined" timestamp with time zone NOT NULL) ; args=None; alias=default
CREATE TABLE "auth_user_groups" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "user_id" integer NOT NULL, "group_id" integer NOT NULL) ; (params None)
(0.202) CREATE TABLE "auth_user_groups" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "user_id" integer NOT NULL, "group_id" integer NOT NULL) ; args=None; alias=default
CREATE TABLE "auth_user_user_permissions" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "user_id" integer NOT NULL, "permission_id" integer NOT NULL) ; (params None)
(0.204) CREATE TABLE "auth_user_user_permissions" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "user_id" integer NOT NULL, "permission_id" integer NOT NULL) ; args=None; alias=default
ALTER TABLE "auth_permission" ADD CONSTRAINT "auth_permission_content_type_id_2f476e4b_fk_django_co" FOREIGN KEY ("content_type_id") REFERENCES "django_content_type" ("id"); (params ())
(0.194) ALTER TABLE "auth_permission" ADD CONSTRAINT "auth_permission_content_type_id_2f476e4b_fk_django_co" FOREIGN KEY ("content_type_id") REFERENCES "django_content_type" ("id"); args=(); alias=default
ALTER TABLE "auth_permission" ADD CONSTRAINT "auth_permission_content_type_id_codename_01ab375a_uniq" UNIQUE ("content_type_id", "codename"); (params ())
(0.190) ALTER TABLE "auth_permission" ADD CONSTRAINT "auth_permission_content_type_id_codename_01ab375a_uniq" UNIQUE ("content_type_id", "codename"); args=(); alias=default
ALTER TABLE "auth_group_permissions" ADD CONSTRAINT "auth_group_permissions_group_id_b120cbf9_fk_auth_group_id" FOREIGN KEY ("group_id") REFERENCES "auth_group" ("id"); (params ())
(0.190) ALTER TABLE "auth_group_permissions" ADD CONSTRAINT "auth_group_permissions_group_id_b120cbf9_fk_auth_group_id" FOREIGN KEY ("group_id") REFERENCES "auth_group" ("id"); args=(); alias=default
ALTER TABLE "auth_group_permissions" ADD CONSTRAINT "auth_group_permissio_permission_id_84c5c92e_fk_auth_perm" FOREIGN KEY ("permission_id") REFERENCES "auth_permission" ("id"); (params ())
(0.191) ALTER TABLE "auth_group_permissions" ADD CONSTRAINT "auth_group_permissio_permission_id_84c5c92e_fk_auth_perm" FOREIGN KEY ("permission_id") REFERENCES "auth_permission" ("id"); args=(); alias=default
ALTER TABLE "auth_group_permissions" ADD CONSTRAINT "auth_group_permissions_group_id_permission_id_0cd325b0_uniq" UNIQUE ("group_id", "permission_id"); (params ())
(0.200) ALTER TABLE "auth_group_permissions" ADD CONSTRAINT "auth_group_permissions_group_id_permission_id_0cd325b0_uniq" UNIQUE ("group_id", "permission_id"); args=(); alias=default
ALTER TABLE "auth_user_groups" ADD CONSTRAINT "auth_user_groups_user_id_6a12ed8b_fk_auth_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_user" ("id"); (params ())
(0.190) ALTER TABLE "auth_user_groups" ADD CONSTRAINT "auth_user_groups_user_id_6a12ed8b_fk_auth_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_user" ("id"); args=(); alias=default
ALTER TABLE "auth_user_groups" ADD CONSTRAINT "auth_user_groups_group_id_97559544_fk_auth_group_id" FOREIGN KEY ("group_id") REFERENCES "auth_group" ("id"); (params ())
(0.190) ALTER TABLE "auth_user_groups" ADD CONSTRAINT "auth_user_groups_group_id_97559544_fk_auth_group_id" FOREIGN KEY ("group_id") REFERENCES "auth_group" ("id"); args=(); alias=default
ALTER TABLE "auth_user_groups" ADD CONSTRAINT "auth_user_groups_user_id_group_id_94350c0c_uniq" UNIQUE ("user_id", "group_id"); (params ())
(0.189) ALTER TABLE "auth_user_groups" ADD CONSTRAINT "auth_user_groups_user_id_group_id_94350c0c_uniq" UNIQUE ("user_id", "group_id"); args=(); alias=default
ALTER TABLE "auth_user_user_permissions" ADD CONSTRAINT "auth_user_user_permissions_user_id_a95ead1b_fk_auth_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_user" ("id"); (params ())
(0.190) ALTER TABLE "auth_user_user_permissions" ADD CONSTRAINT "auth_user_user_permissions_user_id_a95ead1b_fk_auth_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_user" ("id"); args=(); alias=default
ALTER TABLE "auth_user_user_permissions" ADD CONSTRAINT "auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm" FOREIGN KEY ("permission_id") REFERENCES "auth_permission" ("id"); (params ())
(0.193) ALTER TABLE "auth_user_user_permissions" ADD CONSTRAINT "auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm" FOREIGN KEY ("permission_id") REFERENCES "auth_permission" ("id"); args=(); alias=default
ALTER TABLE "auth_user_user_permissions" ADD CONSTRAINT "auth_user_user_permissions_user_id_permission_id_14a6b632_uniq" UNIQUE ("user_id", "permission_id"); (params ())
(0.189) ALTER TABLE "auth_user_user_permissions" ADD CONSTRAINT "auth_user_user_permissions_user_id_permission_id_14a6b632_uniq" UNIQUE ("user_id", "permission_id"); args=(); alias=default
(0.253) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0001_initial', '2024-09-16T22:40:20.919232+00:00'::timestamptz); args=['auth', '0001_initial', datetime.datetime(2024, 9, 16, 22, 40, 20, 919232, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying admin.0001_initial...CREATE TABLE "django_admin_log" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "action_time" timestamp with time zone NOT NULL, "object_id" varchar(max) NULL, "object_repr" varchar(200) NOT NULL, "action_flag" smallint NOT NULL, "change_message" varchar(max) NOT NULL, "content_type_id" integer NULL, "user_id" integer NOT NULL) ; (params None)
(0.210) CREATE TABLE "django_admin_log" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "action_time" timestamp with time zone NOT NULL, "object_id" varchar(max) NULL, "object_repr" varchar(200) NOT NULL, "action_flag" smallint NOT NULL, "change_message" varchar(max) NOT NULL, "content_type_id" integer NULL, "user_id" integer NOT NULL) ; args=None; alias=default
ALTER TABLE "django_admin_log" ADD CONSTRAINT "django_admin_log_content_type_id_c4bce8eb_fk_django_co" FOREIGN KEY ("content_type_id") REFERENCES "django_content_type" ("id"); (params ())
(0.198) ALTER TABLE "django_admin_log" ADD CONSTRAINT "django_admin_log_content_type_id_c4bce8eb_fk_django_co" FOREIGN KEY ("content_type_id") REFERENCES "django_content_type" ("id"); args=(); alias=default
ALTER TABLE "django_admin_log" ADD CONSTRAINT "django_admin_log_user_id_c564eba6_fk_auth_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_user" ("id"); (params ())
(0.190) ALTER TABLE "django_admin_log" ADD CONSTRAINT "django_admin_log_user_id_c564eba6_fk_auth_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_user" ("id"); args=(); alias=default
(0.247) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('admin', '0001_initial', '2024-09-16T22:40:21.952545+00:00'::timestamptz); args=['admin', '0001_initial', datetime.datetime(2024, 9, 16, 22, 40, 21, 952545, tzinfo=datetime.timezone.utc)]; alias=default
(0.183) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying admin.0002_logentry_remove_auto_add...(0.248) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('admin', '0002_logentry_remove_auto_add', '2024-09-16T22:40:22.387904+00:00'::timestamptz); args=['admin', '0002_logentry_remove_auto_add', datetime.datetime(2024, 9, 16, 22, 40, 22, 387904, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying admin.0003_logentry_add_action_flag_choices...(0.255) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('admin', '0003_logentry_add_action_flag_choices', '2024-09-16T22:40:22.817285+00:00'::timestamptz); args=['admin', '0003_logentry_add_action_flag_choices', datetime.datetime(2024, 9, 16, 22, 40, 22, 817285, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying contenttypes.0002_remove_content_type_name...ALTER TABLE "django_content_type" ADD COLUMN "name_tmp" varchar(100) NULL; (params [])
(0.195) ALTER TABLE "django_content_type" ADD COLUMN "name_tmp" varchar(100) NULL; args=[]; alias=default
UPDATE django_content_type SET "name_tmp" = "name" WHERE "name" IS NOT NULL; (params [])
(0.249) UPDATE django_content_type SET "name_tmp" = "name" WHERE "name" IS NOT NULL; args=[]; alias=default
ALTER TABLE django_content_type DROP COLUMN "name" CASCADE; (params [])
(0.194) ALTER TABLE django_content_type DROP COLUMN "name" CASCADE; args=[]; alias=default
ALTER TABLE django_content_type RENAME COLUMN "name_tmp" TO "name"; (params [])
(0.188) ALTER TABLE django_content_type RENAME COLUMN "name_tmp" TO "name"; args=[]; alias=default
ALTER TABLE "django_content_type" DROP COLUMN "name" CASCADE; (params ())
(0.191) ALTER TABLE "django_content_type" DROP COLUMN "name" CASCADE; args=(); alias=default
(0.250) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('contenttypes', '0002_remove_content_type_name', '2024-09-16T22:40:24.276859+00:00'::timestamptz); args=['contenttypes', '0002_remove_content_type_name', datetime.datetime(2024, 9, 16, 22, 40, 24, 276859, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0002_alter_permission_name_max_length...ALTER TABLE "auth_permission" ALTER COLUMN "name" TYPE varchar(255); (params [])
(0.197) ALTER TABLE "auth_permission" ALTER COLUMN "name" TYPE varchar(255); args=[]; alias=default
(0.250) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0002_alter_permission_name_max_length', '2024-09-16T22:40:24.907206+00:00'::timestamptz); args=['auth', '0002_alter_permission_name_max_length', datetime.datetime(2024, 9, 16, 22, 40, 24, 907206, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0003_alter_user_email_max_length...ALTER TABLE "auth_user" ALTER COLUMN "email" TYPE varchar(254); (params [])
(0.195) ALTER TABLE "auth_user" ALTER COLUMN "email" TYPE varchar(254); args=[]; alias=default
(0.262) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0003_alter_user_email_max_length', '2024-09-16T22:40:25.533828+00:00'::timestamptz); args=['auth', '0003_alter_user_email_max_length', datetime.datetime(2024, 9, 16, 22, 40, 25, 533828, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0004_alter_user_username_opts...(0.251) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0004_alter_user_username_opts', '2024-09-16T22:40:25.975884+00:00'::timestamptz); args=['auth', '0004_alter_user_username_opts', datetime.datetime(2024, 9, 16, 22, 40, 25, 975884, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0005_alter_user_last_login_null...ALTER TABLE "auth_user" ADD COLUMN "last_login_tmp" timestamp with time zone NULL; (params [])
(0.195) ALTER TABLE "auth_user" ADD COLUMN "last_login_tmp" timestamp with time zone NULL; args=[]; alias=default
UPDATE auth_user SET "last_login_tmp" = "last_login" WHERE "last_login" IS NOT NULL; (params [])
(0.262) UPDATE auth_user SET "last_login_tmp" = "last_login" WHERE "last_login" IS NOT NULL; args=[]; alias=default
ALTER TABLE auth_user DROP COLUMN "last_login" CASCADE; (params [])
(0.193) ALTER TABLE auth_user DROP COLUMN "last_login" CASCADE; args=[]; alias=default
ALTER TABLE auth_user RENAME COLUMN "last_login_tmp" TO "last_login"; (params [])
(0.188) ALTER TABLE auth_user RENAME COLUMN "last_login_tmp" TO "last_login"; args=[]; alias=default
(0.249) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0005_alter_user_last_login_null', '2024-09-16T22:40:27.250031+00:00'::timestamptz); args=['auth', '0005_alter_user_last_login_null', datetime.datetime(2024, 9, 16, 22, 40, 27, 250031, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0006_require_contenttypes_0002...(0.273) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0006_require_contenttypes_0002', '2024-09-16T22:40:27.674855+00:00'::timestamptz); args=['auth', '0006_require_contenttypes_0002', datetime.datetime(2024, 9, 16, 22, 40, 27, 674855, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0007_alter_validators_add_error_messages...(0.249) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0007_alter_validators_add_error_messages', '2024-09-16T22:40:28.127568+00:00'::timestamptz); args=['auth', '0007_alter_validators_add_error_messages', datetime.datetime(2024, 9, 16, 22, 40, 28, 127568, tzinfo=datetime.timezone.utc)]; alias=default
(0.179) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0008_alter_user_username_max_length...(0.168) 
            SELECT
                c.conname,
                c.conkey::int[],
                c.conrelid,
                c.contype,
                (SELECT fkc.relname || '.' || fka.attname
                FROM pg_attribute AS fka
                JOIN pg_class AS fkc ON fka.attrelid = fkc.oid
                WHERE fka.attrelid = c.confrelid AND fka.attnum = c.confkey[1])
            FROM pg_constraint AS c
            JOIN pg_class AS cl ON c.conrelid = cl.oid
            WHERE cl.relname = 'auth_user' AND pg_catalog.pg_table_is_visible(cl.oid)
        ; args=['auth_user']; alias=default
(0.162) 
            SELECT
                attrelid,  -- table oid
                attnum,
                attname
            FROM pg_attribute
            WHERE pg_attribute.attrelid = 194460
            ORDER BY attrelid, attnum;
        ; args=[194460]; alias=default
(0.167) 
            SELECT
                c2.relname,
                idx.indrelid,
                idx.indkey,  -- type "int2vector", returns space-separated string
                idx.indisunique,
                idx.indisprimary
            FROM
                pg_catalog.pg_class c,
                pg_catalog.pg_class c2,
                pg_catalog.pg_index idx
            WHERE c.oid = idx.indrelid
                AND idx.indexrelid = c2.oid
                AND c.relname = 'auth_user'
        ; args=['auth_user']; alias=default
ALTER TABLE "auth_user" DROP CONSTRAINT "auth_user_username_key"; (params [])
(0.188) ALTER TABLE "auth_user" DROP CONSTRAINT "auth_user_username_key"; args=[]; alias=default
ALTER TABLE "auth_user" ALTER COLUMN "username" TYPE varchar(150); (params [])
(0.194) ALTER TABLE "auth_user" ALTER COLUMN "username" TYPE varchar(150); args=[]; alias=default
ALTER TABLE "auth_user" ADD CONSTRAINT "auth_user_username_key" UNIQUE ("username"); (params [])
(0.190) ALTER TABLE "auth_user" ADD CONSTRAINT "auth_user_username_key" UNIQUE ("username"); args=[]; alias=default
(0.251) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0008_alter_user_username_max_length', '2024-09-16T22:40:29.632872+00:00'::timestamptz); args=['auth', '0008_alter_user_username_max_length', datetime.datetime(2024, 9, 16, 22, 40, 29, 632872, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0009_alter_user_last_name_max_length...ALTER TABLE "auth_user" ALTER COLUMN "last_name" TYPE varchar(150); (params [])
(0.195) ALTER TABLE "auth_user" ALTER COLUMN "last_name" TYPE varchar(150); args=[]; alias=default
(0.249) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0009_alter_user_last_name_max_length', '2024-09-16T22:40:30.259060+00:00'::timestamptz); args=['auth', '0009_alter_user_last_name_max_length', datetime.datetime(2024, 9, 16, 22, 40, 30, 259060, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0010_alter_group_name_max_length...(0.165) 
            SELECT
                c.conname,
                c.conkey::int[],
                c.conrelid,
                c.contype,
                (SELECT fkc.relname || '.' || fka.attname
                FROM pg_attribute AS fka
                JOIN pg_class AS fkc ON fka.attrelid = fkc.oid
                WHERE fka.attrelid = c.confrelid AND fka.attnum = c.confkey[1])
            FROM pg_constraint AS c
            JOIN pg_class AS cl ON c.conrelid = cl.oid
            WHERE cl.relname = 'auth_group' AND pg_catalog.pg_table_is_visible(cl.oid)
        ; args=['auth_group']; alias=default
(0.161) 
            SELECT
                attrelid,  -- table oid
                attnum,
                attname
            FROM pg_attribute
            WHERE pg_attribute.attrelid = 194448
            ORDER BY attrelid, attnum;
        ; args=[194448]; alias=default
(0.167) 
            SELECT
                c2.relname,
                idx.indrelid,
                idx.indkey,  -- type "int2vector", returns space-separated string
                idx.indisunique,
                idx.indisprimary
            FROM
                pg_catalog.pg_class c,
                pg_catalog.pg_class c2,
                pg_catalog.pg_index idx
            WHERE c.oid = idx.indrelid
                AND idx.indexrelid = c2.oid
                AND c.relname = 'auth_group'
        ; args=['auth_group']; alias=default
ALTER TABLE "auth_group" DROP CONSTRAINT "auth_group_name_key"; (params [])
(0.189) ALTER TABLE "auth_group" DROP CONSTRAINT "auth_group_name_key"; args=[]; alias=default
ALTER TABLE "auth_group" ALTER COLUMN "name" TYPE varchar(150); (params [])
(0.194) ALTER TABLE "auth_group" ALTER COLUMN "name" TYPE varchar(150); args=[]; alias=default
ALTER TABLE "auth_group" ADD CONSTRAINT "auth_group_name_key" UNIQUE ("name"); (params [])
(0.188) ALTER TABLE "auth_group" ADD CONSTRAINT "auth_group_name_key" UNIQUE ("name"); args=[]; alias=default
(0.264) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0010_alter_group_name_max_length', '2024-09-16T22:40:31.755694+00:00'::timestamptz); args=['auth', '0010_alter_group_name_max_length', datetime.datetime(2024, 9, 16, 22, 40, 31, 755694, tzinfo=datetime.timezone.utc)]; alias=default
(0.184) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0011_update_proxy_permissions...(0.261) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0011_update_proxy_permissions', '2024-09-16T22:40:32.209032+00:00'::timestamptz); args=['auth', '0011_update_proxy_permissions', datetime.datetime(2024, 9, 16, 22, 40, 32, 209032, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying auth.0012_alter_user_first_name_max_length...ALTER TABLE "auth_user" ALTER COLUMN "first_name" TYPE varchar(150); (params [])
(0.195) ALTER TABLE "auth_user" ALTER COLUMN "first_name" TYPE varchar(150); args=[]; alias=default
(0.252) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('auth', '0012_alter_user_first_name_max_length', '2024-09-16T22:40:32.848417+00:00'::timestamptz); args=['auth', '0012_alter_user_first_name_max_length', datetime.datetime(2024, 9, 16, 22, 40, 32, 848417, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0001_initial...CREATE TABLE "explorer_query" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "title" varchar(255) NOT NULL, "sql" varchar(max) NOT NULL, "description" varchar(max) NOT NULL, "created_at" timestamp with time zone NOT NULL, "last_run_date" timestamp with time zone NOT NULL, "created_by_user_id" integer NULL) ; (params None)
(0.204) CREATE TABLE "explorer_query" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "title" varchar(255) NOT NULL, "sql" varchar(max) NOT NULL, "description" varchar(max) NOT NULL, "created_at" timestamp with time zone NOT NULL, "last_run_date" timestamp with time zone NOT NULL, "created_by_user_id" integer NULL) ; args=None; alias=default
CREATE TABLE "explorer_querylog" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "sql" varchar(max) NOT NULL, "is_playground" boolean NOT NULL, "run_at" timestamp with time zone NOT NULL, "query_id" integer NULL, "run_by_user_id" integer NULL) ; (params None)
(0.208) CREATE TABLE "explorer_querylog" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "sql" varchar(max) NOT NULL, "is_playground" boolean NOT NULL, "run_at" timestamp with time zone NOT NULL, "query_id" integer NULL, "run_by_user_id" integer NULL) ; args=None; alias=default
ALTER TABLE "explorer_query" ADD CONSTRAINT "explorer_query_created_by_user_id_182dd868_fk_auth_user_id" FOREIGN KEY ("created_by_user_id") REFERENCES "auth_user" ("id"); (params ())
(0.191) ALTER TABLE "explorer_query" ADD CONSTRAINT "explorer_query_created_by_user_id_182dd868_fk_auth_user_id" FOREIGN KEY ("created_by_user_id") REFERENCES "auth_user" ("id"); args=(); alias=default
ALTER TABLE "explorer_querylog" ADD CONSTRAINT "explorer_querylog_query_id_1635a6b4_fk_explorer_query_id" FOREIGN KEY ("query_id") REFERENCES "explorer_query" ("id"); (params ())
(0.191) ALTER TABLE "explorer_querylog" ADD CONSTRAINT "explorer_querylog_query_id_1635a6b4_fk_explorer_query_id" FOREIGN KEY ("query_id") REFERENCES "explorer_query" ("id"); args=(); alias=default
ALTER TABLE "explorer_querylog" ADD CONSTRAINT "explorer_querylog_run_by_user_id_cf26a49f_fk_auth_user_id" FOREIGN KEY ("run_by_user_id") REFERENCES "auth_user" ("id"); (params ())
(0.192) ALTER TABLE "explorer_querylog" ADD CONSTRAINT "explorer_querylog_run_by_user_id_cf26a49f_fk_auth_user_id" FOREIGN KEY ("run_by_user_id") REFERENCES "auth_user" ("id"); args=(); alias=default
(0.254) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0001_initial', '2024-09-16T22:40:34.276692+00:00'::timestamptz); args=['explorer', '0001_initial', datetime.datetime(2024, 9, 16, 22, 40, 34, 276692, tzinfo=datetime.timezone.utc)]; alias=default
(0.177) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0002_auto_20150501_1515...ALTER TABLE "explorer_querylog" DROP COLUMN "is_playground" CASCADE; (params ())
(0.193) ALTER TABLE "explorer_querylog" DROP COLUMN "is_playground" CASCADE; args=(); alias=default
(0.250) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0002_auto_20150501_1515', '2024-09-16T22:40:34.912500+00:00'::timestamptz); args=['explorer', '0002_auto_20150501_1515', datetime.datetime(2024, 9, 16, 22, 40, 34, 912500, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0003_query_snapshot...ALTER TABLE "explorer_query" ADD COLUMN "snapshot" boolean DEFAULT %s NOT NULL; (params [False])
(0.201) ALTER TABLE "explorer_query" ADD COLUMN "snapshot" boolean DEFAULT false NOT NULL; args=[False]; alias=default
(0.249) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0003_query_snapshot', '2024-09-16T22:40:35.545943+00:00'::timestamptz); args=['explorer', '0003_query_snapshot', datetime.datetime(2024, 9, 16, 22, 40, 35, 545943, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0004_querylog_duration...ALTER TABLE "explorer_querylog" ADD COLUMN "duration" double precision NULL; (params [])
(0.198) ALTER TABLE "explorer_querylog" ADD COLUMN "duration" double precision NULL; args=[]; alias=default
(0.250) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0004_querylog_duration', '2024-09-16T22:40:36.174186+00:00'::timestamptz); args=['explorer', '0004_querylog_duration', datetime.datetime(2024, 9, 16, 22, 40, 36, 174186, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0005_auto_20160105_2052...(0.248) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0005_auto_20160105_2052', '2024-09-16T22:40:36.605697+00:00'::timestamptz); args=['explorer', '0005_auto_20160105_2052', datetime.datetime(2024, 9, 16, 22, 40, 36, 605697, tzinfo=datetime.timezone.utc)]; alias=default
(0.178) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0006_query_connection...ALTER TABLE "explorer_query" ADD COLUMN "connection" varchar(128) NULL; (params [])
(0.195) ALTER TABLE "explorer_query" ADD COLUMN "connection" varchar(128) NULL; args=[]; alias=default
(0.248) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0006_query_connection', '2024-09-16T22:40:37.234627+00:00'::timestamptz); args=['explorer', '0006_query_connection', datetime.datetime(2024, 9, 16, 22, 40, 37, 234627, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0007_querylog_connection...ALTER TABLE "explorer_querylog" ADD COLUMN "connection" varchar(128) NULL; (params [])
(0.194) ALTER TABLE "explorer_querylog" ADD COLUMN "connection" varchar(128) NULL; args=[]; alias=default
(0.248) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0007_querylog_connection', '2024-09-16T22:40:37.859055+00:00'::timestamptz); args=['explorer', '0007_querylog_connection', datetime.datetime(2024, 9, 16, 22, 40, 37, 859055, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0008_auto_20190308_1642...(0.247) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0008_auto_20190308_1642', '2024-09-16T22:40:38.292242+00:00'::timestamptz); args=['explorer', '0008_auto_20190308_1642', datetime.datetime(2024, 9, 16, 22, 40, 38, 292242, tzinfo=datetime.timezone.utc)]; alias=default
(0.177) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0009_auto_20201009_0547...ALTER TABLE "explorer_query" ADD COLUMN "connection_tmp" varchar(128) DEFAULT %s NOT NULL; (params [''])
(0.203) ALTER TABLE "explorer_query" ADD COLUMN "connection_tmp" varchar(128) DEFAULT '' NOT NULL; args=['']; alias=default
UPDATE explorer_query SET "connection_tmp" = "connection" WHERE "connection" IS NOT NULL; (params [])
(0.253) UPDATE explorer_query SET "connection_tmp" = "connection" WHERE "connection" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_query DROP COLUMN "connection" CASCADE; (params [])
(0.193) ALTER TABLE explorer_query DROP COLUMN "connection" CASCADE; args=[]; alias=default
ALTER TABLE explorer_query RENAME COLUMN "connection_tmp" TO "connection"; (params [])
(0.188) ALTER TABLE explorer_query RENAME COLUMN "connection_tmp" TO "connection"; args=[]; alias=default
ALTER TABLE "explorer_querylog" ADD COLUMN "connection_tmp" varchar(128) DEFAULT %s NOT NULL; (params [''])
(0.202) ALTER TABLE "explorer_querylog" ADD COLUMN "connection_tmp" varchar(128) DEFAULT '' NOT NULL; args=['']; alias=default
UPDATE explorer_querylog SET "connection_tmp" = "connection" WHERE "connection" IS NOT NULL; (params [])
(0.262) UPDATE explorer_querylog SET "connection_tmp" = "connection" WHERE "connection" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_querylog DROP COLUMN "connection" CASCADE; (params [])
(0.193) ALTER TABLE explorer_querylog DROP COLUMN "connection" CASCADE; args=[]; alias=default
ALTER TABLE explorer_querylog RENAME COLUMN "connection_tmp" TO "connection"; (params [])
(0.188) ALTER TABLE explorer_querylog RENAME COLUMN "connection_tmp" TO "connection"; args=[]; alias=default
(0.248) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0009_auto_20201009_0547', '2024-09-16T22:40:40.417328+00:00'::timestamptz); args=['explorer', '0009_auto_20201009_0547', datetime.datetime(2024, 9, 16, 22, 40, 40, 417328, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0010_sql_required...(0.264) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0010_sql_required', '2024-09-16T22:40:40.846880+00:00'::timestamptz); args=['explorer', '0010_sql_required', datetime.datetime(2024, 9, 16, 22, 40, 40, 846880, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0011_query_favorites...CREATE TABLE "explorer_queryfavorite" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "query_id" integer NOT NULL, "user_id" integer NOT NULL) ; (params None)
(0.203) CREATE TABLE "explorer_queryfavorite" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "query_id" integer NOT NULL, "user_id" integer NOT NULL) ; args=None; alias=default
ALTER TABLE "explorer_queryfavorite" ADD CONSTRAINT "explorer_queryfavorite_query_id_1f4e3cf7_fk_explorer_query_id" FOREIGN KEY ("query_id") REFERENCES "explorer_query" ("id"); (params ())
(0.190) ALTER TABLE "explorer_queryfavorite" ADD CONSTRAINT "explorer_queryfavorite_query_id_1f4e3cf7_fk_explorer_query_id" FOREIGN KEY ("query_id") REFERENCES "explorer_query" ("id"); args=(); alias=default
ALTER TABLE "explorer_queryfavorite" ADD CONSTRAINT "explorer_queryfavorite_user_id_5ef2792c_fk_auth_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_user" ("id"); (params ())
(0.190) ALTER TABLE "explorer_queryfavorite" ADD CONSTRAINT "explorer_queryfavorite_user_id_5ef2792c_fk_auth_user_id" FOREIGN KEY ("user_id") REFERENCES "auth_user" ("id"); args=(); alias=default
ALTER TABLE "explorer_queryfavorite" ADD CONSTRAINT "explorer_queryfavorite_query_id_user_id_602b82de_uniq" UNIQUE ("query_id", "user_id"); (params ())
(0.189) ALTER TABLE "explorer_queryfavorite" ADD CONSTRAINT "explorer_queryfavorite_query_id_user_id_602b82de_uniq" UNIQUE ("query_id", "user_id"); args=(); alias=default
(0.248) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0011_query_favorites', '2024-09-16T22:40:42.067514+00:00'::timestamptz); args=['explorer', '0011_query_favorites', datetime.datetime(2024, 9, 16, 22, 40, 42, 67514, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0012_alter_queryfavorite_query_alter_queryfavorite_user...(0.248) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0012_alter_queryfavorite_query_alter_queryfavorite_user', '2024-09-16T22:40:42.503835+00:00'::timestamptz); args=['explorer', '0012_alter_queryfavorite_query_alter_queryfavorite_user', datetime.datetime(2024, 9, 16, 22, 40, 42, 503835, tzinfo=datetime.timezone.utc)]; alias=default
(0.179) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0013_querylog_error_querylog_success...ALTER TABLE "explorer_querylog" ADD COLUMN "error" varchar(max) NULL; (params [])
(0.202) ALTER TABLE "explorer_querylog" ADD COLUMN "error" varchar(max) NULL; args=[]; alias=default
ALTER TABLE "explorer_querylog" ADD COLUMN "success" boolean DEFAULT %s NOT NULL; (params [True])
(0.206) ALTER TABLE "explorer_querylog" ADD COLUMN "success" boolean DEFAULT true NOT NULL; args=[True]; alias=default
(0.247) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0013_querylog_error_querylog_success', '2024-09-16T22:40:43.351604+00:00'::timestamptz); args=['explorer', '0013_querylog_error_querylog_success', datetime.datetime(2024, 9, 16, 22, 40, 43, 351604, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0014_promptlog...CREATE TABLE "explorer_promptlog" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "prompt" varchar(max) NOT NULL, "response" varchar(max) NOT NULL, "run_at" timestamp with time zone NOT NULL, "duration" double precision NULL, "model" varchar(128) NOT NULL, "error" varchar(max) NULL, "run_by_user_id" integer NULL) ; (params None)
(0.213) CREATE TABLE "explorer_promptlog" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "prompt" varchar(max) NOT NULL, "response" varchar(max) NOT NULL, "run_at" timestamp with time zone NOT NULL, "duration" double precision NULL, "model" varchar(128) NOT NULL, "error" varchar(max) NULL, "run_by_user_id" integer NULL) ; args=None; alias=default
ALTER TABLE "explorer_promptlog" ADD CONSTRAINT "explorer_promptlog_run_by_user_id_ec301ea7_fk_auth_user_id" FOREIGN KEY ("run_by_user_id") REFERENCES "auth_user" ("id"); (params ())
(0.196) ALTER TABLE "explorer_promptlog" ADD CONSTRAINT "explorer_promptlog_run_by_user_id_ec301ea7_fk_auth_user_id" FOREIGN KEY ("run_by_user_id") REFERENCES "auth_user" ("id"); args=(); alias=default
(0.258) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0014_promptlog', '2024-09-16T22:40:44.191050+00:00'::timestamptz); args=['explorer', '0014_promptlog', datetime.datetime(2024, 9, 16, 22, 40, 44, 191050, tzinfo=datetime.timezone.utc)]; alias=default
(0.177) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0015_explorervalue...CREATE TABLE "explorer_explorervalue" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "key" varchar(5) NOT NULL, "value" varchar(max) NULL) ; (params None)
(0.203) CREATE TABLE "explorer_explorervalue" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "key" varchar(5) NOT NULL, "value" varchar(max) NULL) ; args=None; alias=default
(0.252) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0015_explorervalue', '2024-09-16T22:40:44.831422+00:00'::timestamptz); args=['explorer', '0015_explorervalue', datetime.datetime(2024, 9, 16, 22, 40, 44, 831422, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0016_alter_explorervalue_key...ALTER TABLE "explorer_explorervalue" ADD CONSTRAINT "explorer_explorervalue_key_91a291b6_uniq" UNIQUE ("key"); (params ())
(0.189) ALTER TABLE "explorer_explorervalue" ADD CONSTRAINT "explorer_explorervalue_key_91a291b6_uniq" UNIQUE ("key"); args=(); alias=default
(0.338) SELECT "explorer_explorervalue"."id", "explorer_explorervalue"."key", "explorer_explorervalue"."value" FROM "explorer_explorervalue" WHERE ("explorer_explorervalue"."key" = 'ASP' AND "explorer_explorervalue"."value" = 'You are a data analyst''s assistant and will be asked write or modify a SQL query to assist a business
user with their analysis. The user will provide a prompt of what they are looking for help with, and may also
provide SQL they have written so far, relevant table schema, and sample rows from the tables they are querying.

For complex requests, you may use Common Table Expressions (CTEs) to break down the problem into smaller parts.
CTEs are not needed for simpler requests.
') LIMIT 21; args=('ASP', "You are a data analyst's assistant and will be asked write or modify a SQL query to assist a business\nuser with their analysis. The user will provide a prompt of what they are looking for help with, and may also\nprovide SQL they have written so far, relevant table schema, and sample rows from the tables they are querying.\n\nFor complex requests, you may use Common Table Expressions (CTEs) to break down the problem into smaller parts.\nCTEs are not needed for simpler requests.\n"); alias=default
(0.160) SAVEPOINT "s135299533163392_x1"; args=None; alias=default
(0.216) INSERT INTO "explorer_explorervalue" ("key", "value") VALUES ('ASP', 'You are a data analyst''s assistant and will be asked write or modify a SQL query to assist a business
user with their analysis. The user will provide a prompt of what they are looking for help with, and may also
provide SQL they have written so far, relevant table schema, and sample rows from the tables they are querying.

For complex requests, you may use Common Table Expressions (CTEs) to break down the problem into smaller parts.
CTEs are not needed for simpler requests.
'); args=['ASP', "You are a data analyst's assistant and will be asked write or modify a SQL query to assist a business\nuser with their analysis. The user will provide a prompt of what they are looking for help with, and may also\nprovide SQL they have written so far, relevant table schema, and sample rows from the tables they are querying.\n\nFor complex requests, you may use Common Table Expressions (CTEs) to break down the problem into smaller parts.\nCTEs are not needed for simpler requests.\n"]; alias=default
(0.176) SELECT MAX(id) from "explorer_explorervalue"; args=None; alias=default
(0.160) RELEASE SAVEPOINT "s135299533163392_x1"; args=None; alias=default
(0.249) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0016_alter_explorervalue_key', '2024-09-16T22:40:46.705978+00:00'::timestamptz); args=['explorer', '0016_alter_explorervalue_key', datetime.datetime(2024, 9, 16, 22, 40, 46, 705978, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0017_databaseconnection...CREATE TABLE "explorer_databaseconnection" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "alias" varchar(255) NOT NULL UNIQUE, "engine" varchar(255) NOT NULL, "name" varchar(255) NOT NULL, "user" varchar(255) NOT NULL, "password" varchar(255) NOT NULL, "host" varchar(255) NOT NULL, "port" varchar(255) NOT NULL) ; (params None)
(0.207) CREATE TABLE "explorer_databaseconnection" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "alias" varchar(255) NOT NULL UNIQUE, "engine" varchar(255) NOT NULL, "name" varchar(255) NOT NULL, "user" varchar(255) NOT NULL, "password" varchar(255) NOT NULL, "host" varchar(255) NOT NULL, "port" varchar(255) NOT NULL) ; args=None; alias=default
(0.264) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0017_databaseconnection', '2024-09-16T22:40:47.341329+00:00'::timestamptz); args=['explorer', '0017_databaseconnection', datetime.datetime(2024, 9, 16, 22, 40, 47, 341329, tzinfo=datetime.timezone.utc)]; alias=default
(0.186) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0018_alter_databaseconnection_host_and_more...ALTER TABLE "explorer_databaseconnection" ADD COLUMN "host_tmp" varbyte(255) DEFAULT %s NOT NULL; (params [<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7b0ddc30fb00>])
(0.220) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "host_tmp" varbyte(255) DEFAULT to_varbyte('800000000066e8b3efa76a1caee938673105fcb39f3c10a3607aa3191dcb4f80fcfc66da8e80562891fb666673448ffe15804417f4af08c21953756ad5a1ceb4262b6999021b53b38d59285db54b4d9bae2d7a98dc64704150', 'hex')::varbyte NOT NULL; args=[<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7b0ddc30fb00>]; alias=default
UPDATE explorer_databaseconnection SET "host_tmp" = "host"::varbyte WHERE "host" IS NOT NULL; (params [])
(0.250) UPDATE explorer_databaseconnection SET "host_tmp" = "host"::varbyte WHERE "host" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_databaseconnection DROP COLUMN "host" CASCADE; (params [])
(0.192) ALTER TABLE explorer_databaseconnection DROP COLUMN "host" CASCADE; args=[]; alias=default
ALTER TABLE explorer_databaseconnection RENAME COLUMN "host_tmp" TO "host"; (params [])
(0.188) ALTER TABLE explorer_databaseconnection RENAME COLUMN "host_tmp" TO "host"; args=[]; alias=default
ALTER TABLE "explorer_databaseconnection" ADD COLUMN "password_tmp" varbyte(255) DEFAULT %s NOT NULL; (params [<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7b0ddc30e390>])
(0.205) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "password_tmp" varbyte(255) DEFAULT to_varbyte('800000000066e8b3f0273cafa22de858f7763070d34daa39873f060ecd742660961a08b45202851fd1acd7bfcabef0bebe9e6263f5c28e0d5220709f38ecaeefa58dbd57619e297127136c7e98007d52f7147e5904d876850b', 'hex')::varbyte NOT NULL; args=[<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7b0ddc30e390>]; alias=default
UPDATE explorer_databaseconnection SET "password_tmp" = "password"::varbyte WHERE "password" IS NOT NULL; (params [])
(0.256) UPDATE explorer_databaseconnection SET "password_tmp" = "password"::varbyte WHERE "password" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_databaseconnection DROP COLUMN "password" CASCADE; (params [])
(0.194) ALTER TABLE explorer_databaseconnection DROP COLUMN "password" CASCADE; args=[]; alias=default
ALTER TABLE explorer_databaseconnection RENAME COLUMN "password_tmp" TO "password"; (params [])
(0.188) ALTER TABLE explorer_databaseconnection RENAME COLUMN "password_tmp" TO "password"; args=[]; alias=default
ALTER TABLE "explorer_databaseconnection" ADD COLUMN "user_tmp" varbyte(255) DEFAULT %s NOT NULL; (params [<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7b0ddc335c60>])
(0.204) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "user_tmp" varbyte(255) DEFAULT to_varbyte('800000000066e8b3f1a519bb1edb8165a05a44f0deddd4b1ecec66234b2e2f53b9bc28d87cc0b866c23af1b2788ca47637be040645cb37cd57ec6a2b12dca9f02c9bf2f756fe25279da8e836608d9529655c0879ce45d1f000', 'hex')::varbyte NOT NULL; args=[<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7b0ddc335c60>]; alias=default
UPDATE explorer_databaseconnection SET "user_tmp" = "user"::varbyte WHERE "user" IS NOT NULL; (params [])
(0.288) UPDATE explorer_databaseconnection SET "user_tmp" = "user"::varbyte WHERE "user" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_databaseconnection DROP COLUMN "user" CASCADE; (params [])
(0.193) ALTER TABLE explorer_databaseconnection DROP COLUMN "user" CASCADE; args=[]; alias=default
ALTER TABLE explorer_databaseconnection RENAME COLUMN "user_tmp" TO "user"; (params [])
(0.189) ALTER TABLE explorer_databaseconnection RENAME COLUMN "user_tmp" TO "user"; args=[]; alias=default
(0.248) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0018_alter_databaseconnection_host_and_more', '2024-09-16T22:40:50.368590+00:00'::timestamptz); args=['explorer', '0018_alter_databaseconnection_host_and_more', datetime.datetime(2024, 9, 16, 22, 40, 50, 368590, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0019_alter_databaseconnection_engine...(0.262) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0019_alter_databaseconnection_engine', '2024-09-16T22:40:50.795384+00:00'::timestamptz); args=['explorer', '0019_alter_databaseconnection_engine', datetime.datetime(2024, 9, 16, 22, 40, 50, 795384, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0020_databaseconnection_extras_and_more...ALTER TABLE "explorer_databaseconnection" ADD COLUMN "extras" varchar NULL; (params [])
(0.195) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "extras" varchar NULL; args=[]; alias=default
(0.260) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0020_databaseconnection_extras_and_more', '2024-09-16T22:40:51.431820+00:00'::timestamptz); args=['explorer', '0020_databaseconnection_extras_and_more', datetime.datetime(2024, 9, 16, 22, 40, 51, 431820, tzinfo=datetime.timezone.utc)]; alias=default
(0.202) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0021_alter_databaseconnection_password_and_more...ALTER TABLE "explorer_databaseconnection" ADD COLUMN "password_tmp" varbyte(255) NULL; (params [])
(0.195) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "password_tmp" varbyte(255) NULL; args=[]; alias=default
UPDATE explorer_databaseconnection SET "password_tmp" = "password"::varbyte WHERE "password" IS NOT NULL; (params [])
(0.468) UPDATE explorer_databaseconnection SET "password_tmp" = "password"::varbyte WHERE "password" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_databaseconnection DROP COLUMN "password" CASCADE; (params [])
(0.194) ALTER TABLE explorer_databaseconnection DROP COLUMN "password" CASCADE; args=[]; alias=default
ALTER TABLE explorer_databaseconnection RENAME COLUMN "password_tmp" TO "password"; (params [])
(0.189) ALTER TABLE explorer_databaseconnection RENAME COLUMN "password_tmp" TO "password"; args=[]; alias=default
ALTER TABLE "explorer_databaseconnection" ADD COLUMN "user_tmp" varbyte(255) NULL; (params [])
(0.194) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "user_tmp" varbyte(255) NULL; args=[]; alias=default
UPDATE explorer_databaseconnection SET "user_tmp" = "user"::varbyte WHERE "user" IS NOT NULL; (params [])
(0.249) UPDATE explorer_databaseconnection SET "user_tmp" = "user"::varbyte WHERE "user" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_databaseconnection DROP COLUMN "user" CASCADE; (params [])
(0.193) ALTER TABLE explorer_databaseconnection DROP COLUMN "user" CASCADE; args=[]; alias=default
ALTER TABLE explorer_databaseconnection RENAME COLUMN "user_tmp" TO "user"; (params [])
(0.188) ALTER TABLE explorer_databaseconnection RENAME COLUMN "user_tmp" TO "user"; args=[]; alias=default
(0.246) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0021_alter_databaseconnection_password_and_more', '2024-09-16T22:40:53.770759+00:00'::timestamptz); args=['explorer', '0021_alter_databaseconnection_password_and_more', datetime.datetime(2024, 9, 16, 22, 40, 53, 770759, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0022_databaseconnection_upload_fingerprint...ALTER TABLE "explorer_databaseconnection" ADD COLUMN "upload_fingerprint" varchar(255) NULL; (params [])
(0.193) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "upload_fingerprint" varchar(255) NULL; args=[]; alias=default
(0.249) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0022_databaseconnection_upload_fingerprint', '2024-09-16T22:40:54.389488+00:00'::timestamptz); args=['explorer', '0022_databaseconnection_upload_fingerprint', datetime.datetime(2024, 9, 16, 22, 40, 54, 389488, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying sessions.0001_initial...CREATE TABLE "django_session" ("session_key" varchar(40) NOT NULL PRIMARY KEY, "session_data" varchar(max) NOT NULL, "expire_date" timestamp with time zone NOT NULL) ; (params None)
(0.193) CREATE TABLE "django_session" ("session_key" varchar(40) NOT NULL PRIMARY KEY, "session_data" varchar(max) NOT NULL, "expire_date" timestamp with time zone NOT NULL) ; args=None; alias=default
(0.248) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('sessions', '0001_initial', '2024-09-16T22:40:55.010008+00:00'::timestamptz); args=['sessions', '0001_initial', datetime.datetime(2024, 9, 16, 22, 40, 55, 10008, tzinfo=datetime.timezone.utc)]; alias=default
(0.175) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying testapp.0001_initial...CREATE TABLE "testapp_testmodel" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "ctime" timestamp with time zone NOT NULL, "text" varchar(max) NOT NULL, "uuid" varchar(36) NOT NULL) ; (params None)
(0.204) CREATE TABLE "testapp_testmodel" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "ctime" timestamp with time zone NOT NULL, "text" varchar(max) NOT NULL, "uuid" varchar(36) NOT NULL) ; args=None; alias=default
CREATE TABLE "testapp_testparentmodel" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "age" integer NOT NULL) ; (params None)
(0.204) CREATE TABLE "testapp_testparentmodel" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "age" integer NOT NULL) ; args=None; alias=default
CREATE TABLE "testapp_testreferencedmodel" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY) ; (params None)
(0.205) CREATE TABLE "testapp_testreferencedmodel" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY) ; args=None; alias=default
CREATE TABLE "testapp_testchildmodel" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "age" integer NOT NULL, "parent_id" integer NOT NULL) ; (params None)
(0.224) CREATE TABLE "testapp_testchildmodel" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "age" integer NOT NULL, "parent_id" integer NOT NULL) ; args=None; alias=default
CREATE TABLE "testapp_testmodelwithmetakeys" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL, "age" integer NOT NULL, "created_at" timestamp with time zone NOT NULL, "fk_id" integer NOT NULL) DISTKEY("fk_id") SORTKEY("created_at", "id"); (params None)
(0.204) CREATE TABLE "testapp_testmodelwithmetakeys" ("id" integer identity(1, 1) NOT NULL PRIMARY KEY, "name" varchar(100) NOT NULL, "age" integer NOT NULL, "created_at" timestamp with time zone NOT NULL, "fk_id" integer NOT NULL) DISTKEY("fk_id") SORTKEY("created_at", "id"); args=None; alias=default
ALTER TABLE "testapp_testchildmodel" ADD CONSTRAINT "testapp_testchildmod_parent_id_c460c524_fk_testapp_t" FOREIGN KEY ("parent_id") REFERENCES "testapp_testparentmodel" ("id"); (params ())
(0.191) ALTER TABLE "testapp_testchildmodel" ADD CONSTRAINT "testapp_testchildmod_parent_id_c460c524_fk_testapp_t" FOREIGN KEY ("parent_id") REFERENCES "testapp_testparentmodel" ("id"); args=(); alias=default
ALTER TABLE "testapp_testmodelwithmetakeys" ADD CONSTRAINT "testapp_testmodelwit_fk_id_6f46321c_fk_testapp_t" FOREIGN KEY ("fk_id") REFERENCES "testapp_testreferencedmodel" ("id"); (params ())
(0.190) ALTER TABLE "testapp_testmodelwithmetakeys" ADD CONSTRAINT "testapp_testmodelwit_fk_id_6f46321c_fk_testapp_t" FOREIGN KEY ("fk_id") REFERENCES "testapp_testreferencedmodel" ("id"); args=(); alias=default
(0.249) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('testapp', '0001_initial', '2024-09-16T22:40:56.865984+00:00'::timestamptz); args=['testapp', '0001_initial', datetime.datetime(2024, 9, 16, 22, 40, 56, 865984, tzinfo=datetime.timezone.utc)]; alias=default
(0.184) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
(0.176) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'admin'; args=('admin',); alias=default
(0.372) INSERT INTO "django_content_type" ("app_label", "model") VALUES ('admin', 'logentry'); args=('admin', 'logentry'); alias=default
(0.177) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'admin' AND "django_content_type"."model" = 'logentry') LIMIT 21; args=('admin', 'logentry'); alias=default
(0.189) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (1) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(1,); alias=default
(0.372) INSERT INTO "auth_permission" ("name", "content_type_id", "codename") VALUES ('Can add log entry', 1, 'add_logentry'), ('Can change log entry', 1, 'change_logentry'), ('Can delete log entry', 1, 'delete_logentry'), ('Can view log entry', 1, 'view_logentry'); args=('Can add log entry', 1, 'add_logentry', 'Can change log entry', 1, 'change_logentry', 'Can delete log entry', 1, 'delete_logentry', 'Can view log entry', 1, 'view_logentry'); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'admin'; args=('admin',); alias=default
(0.177) 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'; args=('auth',); alias=default
(0.377) INSERT INTO "django_content_type" ("app_label", "model") VALUES ('auth', 'permission'), ('auth', 'group'), ('auth', 'user'); args=('auth', 'permission', 'auth', 'group', 'auth', 'user'); alias=default
(0.175) 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" = 'permission') LIMIT 21; args=('auth', 'permission'); alias=default
(0.175) 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'); alias=default
(0.183) 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'); alias=default
(0.200) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (2, 3, 4) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(2, 3, 4); alias=default
(0.373) INSERT INTO "auth_permission" ("name", "content_type_id", "codename") VALUES ('Can add permission', 2, 'add_permission'), ('Can change permission', 2, 'change_permission'), ('Can delete permission', 2, 'delete_permission'), ('Can view permission', 2, 'view_permission'), ('Can add group', 3, 'add_group'), ('Can change group', 3, 'change_group'), ('Can delete group', 3, 'delete_group'), ('Can view group', 3, 'view_group'), ('Can add user', 4, 'add_user'), ('Can change user', 4, 'change_user'), ('Can delete user', 4, 'delete_user'), ('Can view user', 4, 'view_user'); args=('Can add permission', 2, 'add_permission', 'Can change permission', 2, 'change_permission', 'Can delete permission', 2, 'delete_permission', 'Can view permission', 2, 'view_permission', 'Can add group', 3, 'add_group', 'Can change group', 3, 'change_group', 'Can delete group', 3, 'delete_group', 'Can view group', 3, 'view_group', 'Can add user', 4, 'add_user', 'Can change user', 4, 'change_user', 'Can delete user', 4, 'delete_user', 'Can view user', 4, 'view_user'); alias=default
(0.174) 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'; args=('auth',); alias=default
(0.173) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'contenttypes'; args=('contenttypes',); alias=default
(0.375) INSERT INTO "django_content_type" ("app_label", "model") VALUES ('contenttypes', 'contenttype'); args=('contenttypes', 'contenttype'); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'contenttypes' AND "django_content_type"."model" = 'contenttype') LIMIT 21; args=('contenttypes', 'contenttype'); alias=default
(0.189) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (5) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(5,); alias=default
(0.376) INSERT INTO "auth_permission" ("name", "content_type_id", "codename") VALUES ('Can add content type', 5, 'add_contenttype'), ('Can change content type', 5, 'change_contenttype'), ('Can delete content type', 5, 'delete_contenttype'), ('Can view content type', 5, 'view_contenttype'); args=('Can add content type', 5, 'add_contenttype', 'Can change content type', 5, 'change_contenttype', 'Can delete content type', 5, 'delete_contenttype', 'Can view content type', 5, 'view_contenttype'); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'contenttypes'; args=('contenttypes',); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'sessions'; args=('sessions',); alias=default
(0.392) INSERT INTO "django_content_type" ("app_label", "model") VALUES ('sessions', 'session'); args=('sessions', 'session'); alias=default
(0.176) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'sessions' AND "django_content_type"."model" = 'session') LIMIT 21; args=('sessions', 'session'); alias=default
(0.226) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (6) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(6,); alias=default
(0.378) INSERT INTO "auth_permission" ("name", "content_type_id", "codename") VALUES ('Can add session', 6, 'add_session'), ('Can change session', 6, 'change_session'), ('Can delete session', 6, 'delete_session'), ('Can view session', 6, 'view_session'); args=('Can add session', 6, 'add_session', 'Can change session', 6, 'change_session', 'Can delete session', 6, 'delete_session', 'Can view session', 6, 'view_session'); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'sessions'; args=('sessions',); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'explorer'; args=('explorer',); alias=default
(0.371) INSERT INTO "django_content_type" ("app_label", "model") VALUES ('explorer', 'query'), ('explorer', 'querylog'), ('explorer', 'queryfavorite'), ('explorer', 'promptlog'), ('explorer', 'explorervalue'), ('explorer', 'databaseconnection'); args=('explorer', 'query', 'explorer', 'querylog', 'explorer', 'queryfavorite', 'explorer', 'promptlog', 'explorer', 'explorervalue', 'explorer', 'databaseconnection'); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'query') LIMIT 21; args=('explorer', 'query'); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'querylog') LIMIT 21; args=('explorer', 'querylog'); alias=default
(0.180) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'queryfavorite') LIMIT 21; args=('explorer', 'queryfavorite'); alias=default
(0.176) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'promptlog') LIMIT 21; args=('explorer', 'promptlog'); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'explorervalue') LIMIT 21; args=('explorer', 'explorervalue'); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'databaseconnection') LIMIT 21; args=('explorer', 'databaseconnection'); alias=default
(0.195) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (7, 8, 9, 10, 11, 12) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(7, 8, 9, 10, 11, 12); alias=default
(0.376) INSERT INTO "auth_permission" ("name", "content_type_id", "codename") VALUES ('Can add Query', 7, 'add_query'), ('Can change Query', 7, 'change_query'), ('Can delete Query', 7, 'delete_query'), ('Can view Query', 7, 'view_query'), ('Can add query log', 8, 'add_querylog'), ('Can change query log', 8, 'change_querylog'), ('Can delete query log', 8, 'delete_querylog'), ('Can view query log', 8, 'view_querylog'), ('Can add query favorite', 9, 'add_queryfavorite'), ('Can change query favorite', 9, 'change_queryfavorite'), ('Can delete query favorite', 9, 'delete_queryfavorite'), ('Can view query favorite', 9, 'view_queryfavorite'), ('Can add prompt log', 10, 'add_promptlog'), ('Can change prompt log', 10, 'change_promptlog'), ('Can delete prompt log', 10, 'delete_promptlog'), ('Can view prompt log', 10, 'view_promptlog'), ('Can add explorer value', 11, 'add_explorervalue'), ('Can change explorer value', 11, 'change_explorervalue'), ('Can delete explorer value', 11, 'delete_explorervalue'), ('Can view explorer value', 11, 'view_explorervalue'), ('Can add database connection', 12, 'add_databaseconnection'), ('Can change database connection', 12, 'change_databaseconnection'), ('Can delete database connection', 12, 'delete_databaseconnection'), ('Can view database connection', 12, 'view_databaseconnection'); args=('Can add Query', 7, 'add_query', 'Can change Query', 7, 'change_query', 'Can delete Query', 7, 'delete_query', 'Can view Query', 7, 'view_query', 'Can add query log', 8, 'add_querylog', 'Can change query log', 8, 'change_querylog', 'Can delete query log', 8, 'delete_querylog', 'Can view query log', 8, 'view_querylog', 'Can add query favorite', 9, 'add_queryfavorite', 'Can change query favorite', 9, 'change_queryfavorite', 'Can delete query favorite', 9, 'delete_queryfavorite', 'Can view query favorite', 9, 'view_queryfavorite', 'Can add prompt log', 10, 'add_promptlog', 'Can change prompt log', 10, 'change_promptlog', 'Can delete prompt log', 10, 'delete_promptlog', 'Can view prompt log', 10, 'view_promptlog', 'Can add explorer value', 11, 'add_explorervalue', 'Can change explorer value', 11, 'change_explorervalue', 'Can delete explorer value', 11, 'delete_explorervalue', 'Can view explorer value', 11, 'view_explorervalue', 'Can add database connection', 12, 'add_databaseconnection', 'Can change database connection', 12, 'change_databaseconnection', 'Can delete database connection', 12, 'delete_databaseconnection', 'Can view database connection', 12, 'view_databaseconnection'); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'explorer'; args=('explorer',); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'testapp'; args=('testapp',); alias=default
(0.380) INSERT INTO "django_content_type" ("app_label", "model") VALUES ('testapp', 'testmodel'), ('testapp', 'testparentmodel'), ('testapp', 'testreferencedmodel'), ('testapp', 'testchildmodel'), ('testapp', 'testmodelwithmetakeys'); args=('testapp', 'testmodel', 'testapp', 'testparentmodel', 'testapp', 'testreferencedmodel', 'testapp', 'testchildmodel', 'testapp', 'testmodelwithmetakeys'); alias=default
(0.177) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testmodel') LIMIT 21; args=('testapp', 'testmodel'); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testparentmodel') LIMIT 21; args=('testapp', 'testparentmodel'); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testreferencedmodel') LIMIT 21; args=('testapp', 'testreferencedmodel'); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testchildmodel') LIMIT 21; args=('testapp', 'testchildmodel'); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testmodelwithmetakeys') LIMIT 21; args=('testapp', 'testmodelwithmetakeys'); alias=default
(0.192) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (13, 14, 15, 16, 17) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(13, 14, 15, 16, 17); alias=default
(0.374) INSERT INTO "auth_permission" ("name", "content_type_id", "codename") VALUES ('Can add test model', 13, 'add_testmodel'), ('Can change test model', 13, 'change_testmodel'), ('Can delete test model', 13, 'delete_testmodel'), ('Can view test model', 13, 'view_testmodel'), ('Can add test parent model', 14, 'add_testparentmodel'), ('Can change test parent model', 14, 'change_testparentmodel'), ('Can delete test parent model', 14, 'delete_testparentmodel'), ('Can view test parent model', 14, 'view_testparentmodel'), ('Can add test referenced model', 15, 'add_testreferencedmodel'), ('Can change test referenced model', 15, 'change_testreferencedmodel'), ('Can delete test referenced model', 15, 'delete_testreferencedmodel'), ('Can view test referenced model', 15, 'view_testreferencedmodel'), ('Can add test child model', 16, 'add_testchildmodel'), ('Can change test child model', 16, 'change_testchildmodel'), ('Can delete test child model', 16, 'delete_testchildmodel'), ('Can view test child model', 16, 'view_testchildmodel'), ('Can add test model with meta keys', 17, 'add_testmodelwithmetakeys'), ('Can change test model with meta keys', 17, 'change_testmodelwithmetakeys'), ('Can delete test model with meta keys', 17, 'delete_testmodelwithmetakeys'), ('Can view test model with meta keys', 17, 'view_testmodelwithmetakeys'); args=('Can add test model', 13, 'add_testmodel', 'Can change test model', 13, 'change_testmodel', 'Can delete test model', 13, 'delete_testmodel', 'Can view test model', 13, 'view_testmodel', 'Can add test parent model', 14, 'add_testparentmodel', 'Can change test parent model', 14, 'change_testparentmodel', 'Can delete test parent model', 14, 'delete_testparentmodel', 'Can view test parent model', 14, 'view_testparentmodel', 'Can add test referenced model', 15, 'add_testreferencedmodel', 'Can change test referenced model', 15, 'change_testreferencedmodel', 'Can delete test referenced model', 15, 'delete_testreferencedmodel', 'Can view test referenced model', 15, 'view_testreferencedmodel', 'Can add test child model', 16, 'add_testchildmodel', 'Can change test child model', 16, 'change_testchildmodel', 'Can delete test child model', 16, 'delete_testchildmodel', 'Can view test child model', 16, 'view_testchildmodel', 'Can add test model with meta keys', 17, 'add_testmodelwithmetakeys', 'Can change test model with meta keys', 17, 'change_testmodelwithmetakeys', 'Can delete test model with meta keys', 17, 'delete_testmodelwithmetakeys', 'Can view test model with meta keys', 17, 'view_testmodelwithmetakeys'); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'testapp'; args=('testapp',); alias=default

@shimizukawa
Copy link
Member Author

backward migration

(venv) @shimizukawa ➜ /workspaces/django-redshift-backend/examples/dj-sql-explorer (152-dj51) $ python manage.py migrate explorer 0019
(0.195) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
(0.162) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
(0.167) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
(0.161) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
Operations to perform:
  Target specific migration: 0019_alter_databaseconnection_engine, from explorer
Running migrations:
(0.168) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
  Rendering model states... DONE
  Unapplying explorer.0022_databaseconnection_upload_fingerprint...ALTER TABLE "explorer_databaseconnection" DROP COLUMN "upload_fingerprint" CASCADE; (params ())
(0.195) ALTER TABLE "explorer_databaseconnection" DROP COLUMN "upload_fingerprint" CASCADE; args=(); alias=default
(4.873) DELETE FROM "django_migrations" WHERE ("django_migrations"."app" = 'explorer' AND "django_migrations"."name" = '0022_databaseconnection_upload_fingerprint'); args=('explorer', '0022_databaseconnection_upload_fingerprint'); alias=default
 OK
  Unapplying explorer.0021_alter_databaseconnection_password_and_more...ALTER TABLE "explorer_databaseconnection" ADD COLUMN "user_tmp" varbyte(255) DEFAULT %s NOT NULL; (params [<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7e58fdb3dbc0>])
(0.207) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "user_tmp" varbyte(255) DEFAULT to_varbyte('800000000066e8b41e5b3559b66fa7dbab5e9351374fec103e17bb404e4c53bf596230f4c89b0f21324858e323fabe885a9633c238c6ecf1ebf47573777a9cba6a7d8c6292fd47b3515ff6c8d8408ac98096812a47123c53f1', 'hex')::varbyte NOT NULL; args=[<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7e58fdb3dbc0>]; alias=default
UPDATE explorer_databaseconnection SET "user_tmp" = "user"::varbyte WHERE "user" IS NOT NULL; (params [])
(4.939) UPDATE explorer_databaseconnection SET "user_tmp" = "user"::varbyte WHERE "user" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_databaseconnection DROP COLUMN "user" CASCADE; (params [])
(0.194) ALTER TABLE explorer_databaseconnection DROP COLUMN "user" CASCADE; args=[]; alias=default
ALTER TABLE explorer_databaseconnection RENAME COLUMN "user_tmp" TO "user"; (params [])
(0.189) ALTER TABLE explorer_databaseconnection RENAME COLUMN "user_tmp" TO "user"; args=[]; alias=default
ALTER TABLE "explorer_databaseconnection" ADD COLUMN "password_tmp" varbyte(255) DEFAULT %s NOT NULL; (params [<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7e58fdb3c310>])
(0.205) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "password_tmp" varbyte(255) DEFAULT to_varbyte('800000000066e8b4237ce38b6e28c7f08907310ae6aed8cb681539595c12e3123eb93c14342aff35f9270fa6ee6c6610a953caa966db5febf0c80dd08241401f95dc91734f1252ae58a9f445a677387a153e8fe9a10bda74c1', 'hex')::varbyte NOT NULL; args=[<django_redshift_backend.psycopg2adapter.RedshiftBinary object at 0x7e58fdb3c310>]; alias=default
UPDATE explorer_databaseconnection SET "password_tmp" = "password"::varbyte WHERE "password" IS NOT NULL; (params [])
(5.120) UPDATE explorer_databaseconnection SET "password_tmp" = "password"::varbyte WHERE "password" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_databaseconnection DROP COLUMN "password" CASCADE; (params [])
(0.194) ALTER TABLE explorer_databaseconnection DROP COLUMN "password" CASCADE; args=[]; alias=default
ALTER TABLE explorer_databaseconnection RENAME COLUMN "password_tmp" TO "password"; (params [])
(0.189) ALTER TABLE explorer_databaseconnection RENAME COLUMN "password_tmp" TO "password"; args=[]; alias=default
(5.647) DELETE FROM "django_migrations" WHERE ("django_migrations"."app" = 'explorer' AND "django_migrations"."name" = '0021_alter_databaseconnection_password_and_more'); args=('explorer', '0021_alter_databaseconnection_password_and_more'); alias=default
 OK
  Unapplying explorer.0020_databaseconnection_extras_and_more...ALTER TABLE "explorer_databaseconnection" DROP COLUMN "extras" CASCADE; (params ())
(0.194) ALTER TABLE "explorer_databaseconnection" DROP COLUMN "extras" CASCADE; args=(); alias=default
(0.353) DELETE FROM "django_migrations" WHERE ("django_migrations"."app" = 'explorer' AND "django_migrations"."name" = '0020_databaseconnection_extras_and_more'); args=('explorer', '0020_databaseconnection_extras_and_more'); alias=default
 OK
(0.174) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'admin'; args=('admin',); alias=default
(0.176) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'admin' AND "django_content_type"."model" = 'logentry') LIMIT 21; args=('admin', 'logentry'); alias=default
(0.190) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (1) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(1,); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'admin'; args=('admin',); alias=default
(0.174) 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'; args=('auth',); alias=default
(0.175) 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" = 'permission') LIMIT 21; args=('auth', 'permission'); alias=default
(0.175) 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'); alias=default
(0.174) 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'); alias=default
(0.388) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (2, 3, 4) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(2, 3, 4); alias=default
(0.161) 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'; args=('auth',); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'contenttypes'; args=('contenttypes',); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'contenttypes' AND "django_content_type"."model" = 'contenttype') LIMIT 21; args=('contenttypes', 'contenttype'); alias=default
(0.187) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (5) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(5,); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'contenttypes'; args=('contenttypes',); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'sessions'; args=('sessions',); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'sessions' AND "django_content_type"."model" = 'session') LIMIT 21; args=('sessions', 'session'); alias=default
(0.187) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (6) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(6,); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'sessions'; args=('sessions',); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'explorer'; args=('explorer',); alias=default
(0.175) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'query') LIMIT 21; args=('explorer', 'query'); alias=default
(0.189) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'querylog') LIMIT 21; args=('explorer', 'querylog'); alias=default
(0.185) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'queryfavorite') LIMIT 21; args=('explorer', 'queryfavorite'); alias=default
(0.180) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'promptlog') LIMIT 21; args=('explorer', 'promptlog'); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'explorervalue') LIMIT 21; args=('explorer', 'explorervalue'); alias=default
(0.174) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'databaseconnection') LIMIT 21; args=('explorer', 'databaseconnection'); alias=default
(0.299) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (7, 8, 9, 10, 11, 12) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(7, 8, 9, 10, 11, 12); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'explorer'; args=('explorer',); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'testapp'; args=('testapp',); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testmodel') LIMIT 21; args=('testapp', 'testmodel'); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testchildmodel') LIMIT 21; args=('testapp', 'testchildmodel'); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testparentmodel') LIMIT 21; args=('testapp', 'testparentmodel'); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testmodelwithmetakeys') LIMIT 21; args=('testapp', 'testmodelwithmetakeys'); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testreferencedmodel') LIMIT 21; args=('testapp', 'testreferencedmodel'); alias=default
(0.190) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (13, 14, 15, 16, 17) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(13, 14, 15, 16, 17); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'testapp'; args=('testapp',); alias=default
(venv) @shimizukawa ➜ /workspaces/django-redshift-backend/examples/dj-sql-explorer (152-dj51) $ python manage.py showmigrations
(0.195) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
(0.162) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
(0.169) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
(0.162) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add
 [X] 0003_logentry_add_action_flag_choices
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X] 0004_alter_user_username_opts
 [X] 0005_alter_user_last_login_null
 [X] 0006_require_contenttypes_0002
 [X] 0007_alter_validators_add_error_messages
 [X] 0008_alter_user_username_max_length
 [X] 0009_alter_user_last_name_max_length
 [X] 0010_alter_group_name_max_length
 [X] 0011_update_proxy_permissions
 [X] 0012_alter_user_first_name_max_length
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
explorer
 [X] 0001_initial
 [X] 0002_auto_20150501_1515
 [X] 0003_query_snapshot
 [X] 0004_querylog_duration
 [X] 0005_auto_20160105_2052
 [X] 0006_query_connection
 [X] 0007_querylog_connection
 [X] 0008_auto_20190308_1642
 [X] 0009_auto_20201009_0547
 [X] 0010_sql_required
 [X] 0011_query_favorites
 [X] 0012_alter_queryfavorite_query_alter_queryfavorite_user
 [X] 0013_querylog_error_querylog_success
 [X] 0014_promptlog
 [X] 0015_explorervalue
 [X] 0016_alter_explorervalue_key
 [X] 0017_databaseconnection
 [X] 0018_alter_databaseconnection_host_and_more
 [X] 0019_alter_databaseconnection_engine
 [ ] 0020_databaseconnection_extras_and_more
 [ ] 0021_alter_databaseconnection_password_and_more
 [ ] 0022_databaseconnection_upload_fingerprint
sessions
 [X] 0001_initial
testapp
 [X] 0001_initial

@shimizukawa
Copy link
Member Author

forward migration again.

(venv) @shimizukawa ➜ /workspaces/django-redshift-backend/examples/dj-sql-explorer (152-dj51) $ python manage.py migrate 
(0.205) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
(0.162) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
(0.167) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
(0.161) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, explorer, sessions, testapp
Running migrations:
(0.168) 
            SELECT c.relname,
            CASE WHEN c.relkind IN ('m', 'v') THEN 'v' ELSE 't' END
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('f', 'm', 'p', 'r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid)
        ; args=None; alias=default
  Applying explorer.0020_databaseconnection_extras_and_more...ALTER TABLE "explorer_databaseconnection" ADD COLUMN "extras" varchar NULL; (params [])
(0.210) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "extras" varchar NULL; args=[]; alias=default
(0.263) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0020_databaseconnection_extras_and_more', '2024-09-16T22:42:15.255000+00:00'::timestamptz); args=['explorer', '0020_databaseconnection_extras_and_more', datetime.datetime(2024, 9, 16, 22, 42, 15, 255000, tzinfo=datetime.timezone.utc)]; alias=default
(0.177) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0021_alter_databaseconnection_password_and_more...ALTER TABLE "explorer_databaseconnection" ADD COLUMN "password_tmp" varbyte(255) NULL; (params [])
(0.194) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "password_tmp" varbyte(255) NULL; args=[]; alias=default
UPDATE explorer_databaseconnection SET "password_tmp" = "password"::varbyte WHERE "password" IS NOT NULL; (params [])
(0.443) UPDATE explorer_databaseconnection SET "password_tmp" = "password"::varbyte WHERE "password" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_databaseconnection DROP COLUMN "password" CASCADE; (params [])
(0.224) ALTER TABLE explorer_databaseconnection DROP COLUMN "password" CASCADE; args=[]; alias=default
ALTER TABLE explorer_databaseconnection RENAME COLUMN "password_tmp" TO "password"; (params [])
(0.192) ALTER TABLE explorer_databaseconnection RENAME COLUMN "password_tmp" TO "password"; args=[]; alias=default
ALTER TABLE "explorer_databaseconnection" ADD COLUMN "user_tmp" varbyte(255) NULL; (params [])
(0.195) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "user_tmp" varbyte(255) NULL; args=[]; alias=default
UPDATE explorer_databaseconnection SET "user_tmp" = "user"::varbyte WHERE "user" IS NOT NULL; (params [])
(0.252) UPDATE explorer_databaseconnection SET "user_tmp" = "user"::varbyte WHERE "user" IS NOT NULL; args=[]; alias=default
ALTER TABLE explorer_databaseconnection DROP COLUMN "user" CASCADE; (params [])
(0.192) ALTER TABLE explorer_databaseconnection DROP COLUMN "user" CASCADE; args=[]; alias=default
ALTER TABLE explorer_databaseconnection RENAME COLUMN "user_tmp" TO "user"; (params [])
(0.187) ALTER TABLE explorer_databaseconnection RENAME COLUMN "user_tmp" TO "user"; args=[]; alias=default
(0.251) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0021_alter_databaseconnection_password_and_more', '2024-09-16T22:42:17.579453+00:00'::timestamptz); args=['explorer', '0021_alter_databaseconnection_password_and_more', datetime.datetime(2024, 9, 16, 22, 42, 17, 579453, tzinfo=datetime.timezone.utc)]; alias=default
(0.176) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
  Applying explorer.0022_databaseconnection_upload_fingerprint...ALTER TABLE "explorer_databaseconnection" ADD COLUMN "upload_fingerprint" varchar(255) NULL; (params [])
(0.199) ALTER TABLE "explorer_databaseconnection" ADD COLUMN "upload_fingerprint" varchar(255) NULL; args=[]; alias=default
(0.255) INSERT INTO "django_migrations" ("app", "name", "applied") VALUES ('explorer', '0022_databaseconnection_upload_fingerprint', '2024-09-16T22:42:18.208180+00:00'::timestamptz); args=['explorer', '0022_databaseconnection_upload_fingerprint', datetime.datetime(2024, 9, 16, 22, 42, 18, 208180, tzinfo=datetime.timezone.utc)]; alias=default
(0.184) SELECT MAX(id) from "django_migrations"; args=None; alias=default
 OK
(0.174) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'admin'; args=('admin',); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'admin' AND "django_content_type"."model" = 'logentry') LIMIT 21; args=('admin', 'logentry'); alias=default
(0.162) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (1) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(1,); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'admin'; args=('admin',); alias=default
(0.162) 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'; args=('auth',); alias=default
(0.161) 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" = 'permission') LIMIT 21; args=('auth', 'permission'); alias=default
(0.161) 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'); alias=default
(0.162) 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'); alias=default
(0.162) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (2, 3, 4) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(2, 3, 4); alias=default
(0.161) 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'; args=('auth',); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'contenttypes'; args=('contenttypes',); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'contenttypes' AND "django_content_type"."model" = 'contenttype') LIMIT 21; args=('contenttypes', 'contenttype'); alias=default
(0.162) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (5) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(5,); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'contenttypes'; args=('contenttypes',); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'sessions'; args=('sessions',); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'sessions' AND "django_content_type"."model" = 'session') LIMIT 21; args=('sessions', 'session'); alias=default
(0.161) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (6) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(6,); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'sessions'; args=('sessions',); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'explorer'; args=('explorer',); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'query') LIMIT 21; args=('explorer', 'query'); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'querylog') LIMIT 21; args=('explorer', 'querylog'); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'queryfavorite') LIMIT 21; args=('explorer', 'queryfavorite'); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'promptlog') LIMIT 21; args=('explorer', 'promptlog'); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'explorervalue') LIMIT 21; args=('explorer', 'explorervalue'); alias=default
(0.162) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'explorer' AND "django_content_type"."model" = 'databaseconnection') LIMIT 21; args=('explorer', 'databaseconnection'); alias=default
(0.163) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (7, 8, 9, 10, 11, 12) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(7, 8, 9, 10, 11, 12); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'explorer'; args=('explorer',); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'testapp'; args=('testapp',); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testmodel') LIMIT 21; args=('testapp', 'testmodel'); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testparentmodel') LIMIT 21; args=('testapp', 'testparentmodel'); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testreferencedmodel') LIMIT 21; args=('testapp', 'testreferencedmodel'); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testchildmodel') LIMIT 21; args=('testapp', 'testchildmodel'); alias=default
(0.161) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'testapp' AND "django_content_type"."model" = 'testmodelwithmetakeys') LIMIT 21; args=('testapp', 'testmodelwithmetakeys'); alias=default
(0.161) SELECT "auth_permission"."content_type_id", "auth_permission"."codename" FROM "auth_permission" INNER JOIN "django_content_type" ON ("auth_permission"."content_type_id" = "django_content_type"."id") WHERE "auth_permission"."content_type_id" IN (13, 14, 15, 16, 17) ORDER BY "django_content_type"."app_label" ASC, "django_content_type"."model" ASC, "auth_permission"."codename" ASC; args=(13, 14, 15, 16, 17); alias=default
(0.163) SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE "django_content_type"."app_label" = 'testapp'; args=('testapp',); alias=default

@shimizukawa shimizukawa merged commit f5b8ac9 into master Sep 16, 2024
46 of 47 checks passed
@shimizukawa shimizukawa deleted the dj50-enabling-backward-migration branch September 16, 2024 22:50
@shimizukawa shimizukawa mentioned this pull request Sep 16, 2024
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant