]> git.decadent.org.uk Git - dak.git/commitdiff
sync
authorJames Troup <james@nocrew.org>
Sun, 7 Sep 2003 13:49:49 +0000 (13:49 +0000)
committerJames Troup <james@nocrew.org>
Sun, 7 Sep 2003 13:49:49 +0000 (13:49 +0000)
docs/README.suite-removal [new file with mode: 0644]

diff --git a/docs/README.suite-removal b/docs/README.suite-removal
new file mode 100644 (file)
index 0000000..417431d
--- /dev/null
@@ -0,0 +1,82 @@
+[ This was some notes to myself that I made while removing potato; I
+  kept it because it turned out to be a far more traumatic experience
+  than was necesary.  Hopefully rhona will be fixed by the time I need
+  to do this again which would obsolete most of the complex SQL
+  crap. (JT) ]
+
+
+                        Potato Removal Plan
+                        -------------------
+
+o Create potato copy on archive.debian.org
+o poolize any not-just-potato files with monica.
+o force-remove any just-potato files (i.e. by setting last used to 3 weeks ago and run rhona)
+o remove any files (dists/potato) (NB: not pool symlinks!)
+o remove oldstable etc. from the db and config files
+
+********************************************************************************
+DROP TABLE moo;
+
+SELECT f.id INTO TEMP moo FROM files f, binaries b, bin_associations ba
+  WHERE ba.suite IN (2, 3) AND ba.bin = b.id AND f.id = b.file
+EXCEPT
+SELECT f.id FROM files f, binaries b, bin_associations ba
+  WHERE ba.suite NOT IN (2, 3) AND ba.bin = b.id AND f.id = b.file;
+
+CREATE INDEX moo_index on moo (id);
+VACUUM; VACUUM ANALYZE;
+
+EXPLAIN UPDATE files set last_used = '2003/09/03'
+  WHERE EXISTS (
+    SELECT id FROM moo WHERE files.id = moo.id);
+
+DELeditmeETE FROM bin_associations WHERE suite IN (2, 3);
+
+[ run rhona ]
+
+****************************************
+
+DROP TABLE moo;
+
+SELECT f.id INTO TEMP moo FROM files f, source s, src_associations sa, dsc_files df
+  WHERE sa.suite IN (2, 3) AND sa.source = s.id AND df.source = s.id AND df.file = f.id
+    AND NOT EXISTS (SELECT b.id FROM binaries b WHERE b.source = s.id)
+EXCEPT
+SELECT f.id FROM files f, source s, src_associations sa, dsc_files df
+  WHERE sa.suite NOT IN (2, 3) AND sa.source = s.id  AND df.source = s.id AND df.file = f.id;
+
+CREATE INDEX moo_index on moo (id);
+VACUUM; VACUUM ANALYZE;
+
+EXPLAIN UPDATE files set last_used = '2003/09/03'
+  WHERE EXISTS (
+    SELECT id FROM moo WHERE files.id = moo.id);
+
+DELeditmeETE FROM src_associations WHERE suite IN (2, 3);
+
+[ run rhona ]
+
+********************************************************************************
+
+[Code for catherine (poolize); to go after the move of the file]
+# Create symlink
+src = utils.clean_symlink(destination, legacy_filename, Cnf["Dir::Root"]);
+if verbose:
+    print "Symlinking: %s -> %s" % (legacy_filename, src);
+if not no_action:
+    os.symlink(src, legacy_filename);
+
+
+[Query for catherine]
+SELECT l.path, f.filename, f.id as files_id, c.name as component
+   FROM files f, binaries b, bin_associations ba, location l, component c
+  WHERE ba.suite NOT IN (2, 3) AND f.filename ~ '^potato'
+    AND ba.bin = b.id AND f.id = b.file AND l.id = f.location
+    AND c.id = l.component
+UNION
+SELECT DISTINCT ON (f.filename) l.path, f.filename, f.id as files_id, c.name as component
+   FROM files f, source s, src_associations sa, dsc_files df,
+        location l, component c
+  WHERE sa.suite NOT IN (2, 3) AND f.filename ~ '^potato'
+    AND sa.source = s.id AND df.source = s.id AND f.id = df.file
+    AND l.id = f.location AND c.id = l.component;