]> git.openstreetmap.org Git - rails.git/commitdiff
Migrate some sequences to use bigints
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 6 Dec 2023 14:42:40 +0000 (14:42 +0000)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 6 Dec 2023 14:54:12 +0000 (14:54 +0000)
These primary keys were converted to bigints in migrations, but the
sequences were left unmentioned. If the original migrations are run on
postgresql 10.0+, then this leads to a mismatch in column types vs sequence
types. This migration fixes these mismatches.

If the original migrations were run on postgresql < 10, all sequences were
bigints anyway, and this migration is a no-op.

If the sequence is a bigint, then postgresql doesn't output that fact in the
statement dump.

Refs #4298

db/migrate/20231206141457_alter_sequences_bigint.rb [new file with mode: 0644]
db/structure.sql

diff --git a/db/migrate/20231206141457_alter_sequences_bigint.rb b/db/migrate/20231206141457_alter_sequences_bigint.rb
new file mode 100644 (file)
index 0000000..9920fc8
--- /dev/null
@@ -0,0 +1,17 @@
+class AlterSequencesBigint < ActiveRecord::Migration[7.1]
+  def up
+    safety_assured do
+      execute "ALTER SEQUENCE oauth_nonces_id_seq AS bigint"
+      execute "ALTER SEQUENCE notes_id_seq AS bigint"
+      execute "ALTER SEQUENCE note_comments_id_seq AS bigint"
+    end
+  end
+
+  def down
+    safety_assured do
+      execute "ALTER SEQUENCE oauth_nonces_id_seq AS integer"
+      execute "ALTER SEQUENCE notes_id_seq AS integer"
+      execute "ALTER SEQUENCE note_comments_id_seq AS integer"
+    end
+  end
+end
index f74d4d571e2f58c8d3ef65009af3345d6128ea7b..4297d96f1ea1f5a5dc4f1966b7429461a6922ea8 100644 (file)
@@ -1017,7 +1017,6 @@ CREATE TABLE public.note_comments (
 --
 
 CREATE SEQUENCE public.note_comments_id_seq
-    AS integer
     START WITH 1
     INCREMENT BY 1
     NO MINVALUE
@@ -1053,7 +1052,6 @@ CREATE TABLE public.notes (
 --
 
 CREATE SEQUENCE public.notes_id_seq
-    AS integer
     START WITH 1
     INCREMENT BY 1
     NO MINVALUE
@@ -1199,7 +1197,6 @@ CREATE TABLE public.oauth_nonces (
 --
 
 CREATE SEQUENCE public.oauth_nonces_id_seq
-    AS integer
     START WITH 1
     INCREMENT BY 1
     NO MINVALUE
@@ -3506,6 +3503,7 @@ INSERT INTO "schema_migrations" (version) VALUES
 ('23'),
 ('22'),
 ('21'),
+('20231206141457'),
 ('20231117170422'),
 ('20231101222146'),
 ('20231029151516'),