Opened 8 years ago
Closed 8 years ago
#28813 closed Bug (duplicate)
Sqlite migration of manual primary key
| Reported by: | cecedille1 | Owned by: | nobody |
|---|---|---|---|
| Component: | Migrations | Version: | 1.11 |
| Severity: | Normal | Keywords: | sqlite |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Sqlite migration generates an invalid INSERT INTO clause when a table has no more columns. (happens with manual primary keys)
BEGIN;
--
-- Remove field f1 from poc
--
ALTER TABLE "app_poc" RENAME TO "app_poc__old";
CREATE TABLE "app_poc" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT);
INSERT INTO "app_poc" () SELECT FROM "app_poc__old";
DROP TABLE "app_poc__old";
--
-- Add field f2 to poc
--
ALTER TABLE "app_poc" RENAME TO "app_poc__old";
CREATE TABLE "app_poc" ("f2" integer NOT NULL PRIMARY KEY);
INSERT INTO "app_poc" ("f2") SELECT 1 FROM "app_poc__old";
DROP TABLE "app_poc__old";
COMMIT;
https://github.com/cecedille1/django-migrate-empty-columns-poc
Note:
See TracTickets
for help on using tickets.
One way to fix this is to create the new field first before removing the old one