From 907ee998c0fa49807f8d06a2bca8828acd2eb93b Mon Sep 17 00:00:00 2001 From: seb Date: Thu, 29 Oct 2026 02:55:49 +0100 Subject: [PATCH] u --- scripts/migrate-parent-rename.mssql.sql | 92 ------------------------ scripts/migrate-parent-rename.sqlite.sql | 14 ---- 2 files changed, 106 deletions(-) delete mode 100644 scripts/migrate-parent-rename.mssql.sql delete mode 100644 scripts/migrate-parent-rename.sqlite.sql diff --git a/scripts/migrate-parent-rename.mssql.sql b/scripts/migrate-parent-rename.mssql.sql deleted file mode 100644 index 830c0c4..0000000 --- a/scripts/migrate-parent-rename.mssql.sql +++ /dev/null @@ -1,92 +0,0 @@ --- Rename article "father" columns to "parent" (SQL Server / MSSQL). --- --- One-off manual migration (no migration code is kept in the repo). --- sqlcmd -S -d -E -i scripts/migrate-parent-rename.mssql.sql --- --- Guarded and safe to re-run. Safe to retry after a partial run. --- --- NOTE ON BATCHING: sp_rename is deferred and its effect is not visible to --- subsequent statements in the SAME batch. Each rename therefore runs in its --- own batch (GO), and constraint/index recreation happens after a GO so the --- new column names resolve. - -SET XACT_ABORT ON; -GO - -BEGIN TRANSACTION; -GO - --- Drop the old filtered unique index (references fathersort). -IF EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'UQ_article_fatherarticle_fathersort') - DROP INDEX UQ_article_fatherarticle_fathersort ON article; -GO - --- Drop the default constraints bound to the old column names. -IF EXISTS (SELECT 1 FROM sys.default_constraints WHERE name = 'DF_article_is_father') - ALTER TABLE article DROP CONSTRAINT DF_article_is_father; -IF EXISTS (SELECT 1 FROM sys.default_constraints WHERE name = 'DF_article_fathersort') - ALTER TABLE article DROP CONSTRAINT DF_article_fathersort; -GO - --- Drop foreign keys bound to the old columns. -IF EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = 'FK_article_fatherarticle') - ALTER TABLE article DROP CONSTRAINT FK_article_fatherarticle; -IF EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = 'FK_article_fatherattributename') - ALTER TABLE article DROP CONSTRAINT FK_article_fatherattributename; -GO - --- Rename the columns (each sp_rename must be its own batch). -IF COL_LENGTH('article', 'fatherarticle_id') IS NOT NULL - AND COL_LENGTH('article', 'parentarticle_id') IS NULL - EXEC sp_rename 'article.fatherarticle_id', 'parentarticle_id', 'COLUMN'; -GO - -IF COL_LENGTH('article', 'fatherattributename_id') IS NOT NULL - AND COL_LENGTH('article', 'parentattributename_id') IS NULL - EXEC sp_rename 'article.fatherattributename_id', 'parentattributename_id', 'COLUMN'; -GO - -IF COL_LENGTH('article', 'fathersort') IS NOT NULL - AND COL_LENGTH('article', 'parentsort') IS NULL - EXEC sp_rename 'article.fathersort', 'parentsort', 'COLUMN'; -GO - -IF COL_LENGTH('article', 'is_father') IS NOT NULL - AND COL_LENGTH('article', 'is_parent') IS NULL - EXEC sp_rename 'article.is_father', 'is_parent', 'COLUMN'; -GO - -COMMIT TRANSACTION; -GO - --- Recreate the constraints under their new names (after the rename batches). -IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = 'FK_article_parentarticle') - ALTER TABLE article ADD CONSTRAINT FK_article_parentarticle - FOREIGN KEY (parentarticle_id) REFERENCES article(id) ON DELETE NO ACTION; -GO - -IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = 'FK_article_parentattributename') - ALTER TABLE article ADD CONSTRAINT FK_article_parentattributename - FOREIGN KEY (parentattributename_id) REFERENCES attributename(id) ON DELETE NO ACTION; -GO - -IF NOT EXISTS (SELECT 1 FROM sys.default_constraints WHERE name = 'DF_article_is_parent') - ALTER TABLE article ADD CONSTRAINT DF_article_is_parent DEFAULT (0) FOR is_parent; -GO - -IF NOT EXISTS (SELECT 1 FROM sys.default_constraints WHERE name = 'DF_article_parentsort') - ALTER TABLE article ADD CONSTRAINT DF_article_parentsort DEFAULT (0) FOR parentsort; -GO - -IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'UQ_article_parentarticle_parentsort') - CREATE UNIQUE INDEX UQ_article_parentarticle_parentsort - ON article (parentarticle_id, parentsort) - WHERE parentarticle_id IS NOT NULL; -GO - --- Verify -SELECT 'COL:' + c.name AS result -FROM sys.columns c -WHERE c.object_id = OBJECT_ID('article') - AND (c.name LIKE '%father%' OR c.name LIKE '%parent%'); -GO \ No newline at end of file diff --git a/scripts/migrate-parent-rename.sqlite.sql b/scripts/migrate-parent-rename.sqlite.sql deleted file mode 100644 index 4fe5e67..0000000 --- a/scripts/migrate-parent-rename.sqlite.sql +++ /dev/null @@ -1,14 +0,0 @@ --- Rename article "father" columns to "parent". --- --- One-off manual migration (no migration code is kept in the repo). --- sqlite3 data/dash.db < scripts/migrate-parent-rename.sqlite.sql --- --- Safe to re-run: every step is guarded by a column-existence check. - -ALTER TABLE article RENAME COLUMN fatherarticle_id TO parentarticle_id; -ALTER TABLE article RENAME COLUMN fatherattributename_id TO parentattributename_id; -ALTER TABLE article RENAME COLUMN fathersort TO parentsort; -ALTER TABLE article RENAME COLUMN is_father TO is_parent; - --- Verify -PRAGMA table_info(article); \ No newline at end of file