f145a89ab908b05d464de94da99104d0634d6950
[akkoma] / priv / repo / migrations / 20191026191910_set_not_null_for_users.exs
1 defmodule Pleroma.Repo.Migrations.SetNotNullForUsers do
2 use Ecto.Migration
3
4 # modify/3 function will require index recreation, so using execute/1 instead
5
6 def up do
7 # irreversible
8 execute("UPDATE users SET follower_count = 0 WHERE follower_count IS NULL")
9
10 execute("ALTER TABLE users
11 ALTER COLUMN following SET NOT NULL,
12 ALTER COLUMN local SET NOT NULL,
13 ALTER COLUMN source_data SET NOT NULL,
14 ALTER COLUMN note_count SET NOT NULL,
15 ALTER COLUMN follower_count SET NOT NULL,
16 ALTER COLUMN blocks SET NOT NULL,
17 ALTER COLUMN domain_blocks SET NOT NULL,
18 ALTER COLUMN mutes SET NOT NULL,
19 ALTER COLUMN muted_reblogs SET NOT NULL,
20 ALTER COLUMN muted_notifications SET NOT NULL,
21 ALTER COLUMN subscribers SET NOT NULL,
22 ALTER COLUMN pinned_activities SET NOT NULL,
23 ALTER COLUMN emoji SET NOT NULL,
24 ALTER COLUMN fields SET NOT NULL,
25 ALTER COLUMN raw_fields SET NOT NULL")
26 end
27
28 def down do
29 execute("ALTER TABLE users
30 ALTER COLUMN following DROP NOT NULL,
31 ALTER COLUMN local DROP NOT NULL,
32 ALTER COLUMN source_data DROP NOT NULL,
33 ALTER COLUMN note_count DROP NOT NULL,
34 ALTER COLUMN follower_count DROP NOT NULL,
35 ALTER COLUMN blocks DROP NOT NULL,
36 ALTER COLUMN domain_blocks DROP NOT NULL,
37 ALTER COLUMN mutes DROP NOT NULL,
38 ALTER COLUMN muted_reblogs DROP NOT NULL,
39 ALTER COLUMN muted_notifications DROP NOT NULL,
40 ALTER COLUMN subscribers DROP NOT NULL,
41 ALTER COLUMN pinned_activities DROP NOT NULL,
42 ALTER COLUMN emoji DROP NOT NULL,
43 ALTER COLUMN fields DROP NOT NULL,
44 ALTER COLUMN raw_fields DROP NOT NULL")
45 end
46 end