2
2
# database table, we set which columns are included in the dump, and optionally
3
3
# how to filter the rows.
4
4
#
5
- # <table_name>.columns - a TOML dictionary determining what columns to include.
6
- # possible values are "private" (not included) and "public" (included).
5
+ # tables.<table_name>.columns - a TOML dictionary determining what columns to
6
+ # include. possible values are "private" (not included) and "public"
7
+ # (included).
7
8
#
8
- # <table_name>.filter - a string that is a valid SQL expression, which is used
9
- # in a WHERE clause to filter the rows of the table.
9
+ # tables. <table_name>.filter - a string that is a valid SQL expression, which
10
+ # is used in a WHERE clause to filter the rows of the table.
10
11
#
11
- # <table_name>.dependencies - an array of table names, used to determine the
12
- # order of the tables in the generated import script. All tables referred
13
- # to by public columns in the current table should be listed, to make sure
14
- # they are imported before this table.
12
+ # tables. <table_name>.dependencies - an array of table names, used to determine
13
+ # the order of the tables in the generated import script. All tables
14
+ # referred to by public columns in the current table should be listed, to
15
+ # make sure they are imported before this table.
15
16
#
16
- # <table_name>.columns_defaults - a TOML dictionary mapping column names to a
17
- # raw SQL expression that is used as the default value for the column on
18
- # import. This is useful for private columns that are not nullable and do
19
- # not have a default.
20
-
21
- [api_tokens .columns ]
22
- id = " private"
23
- user_id = " private"
24
- token = " private"
25
- name = " private"
26
- created_at = " private"
27
- last_used_at = " private"
28
- revoked = " private"
29
-
30
- [background_jobs .columns ]
31
- id = " private"
32
- job_type = " private"
33
- data = " private"
34
- retries = " private"
35
- last_retry = " private"
36
- created_at = " private"
37
-
38
- [badges ]
17
+ # tables.<table_name>.columns_defaults - a TOML dictionary mapping column names
18
+ # to a raw SQL expression that is used as the default value for the column
19
+ # on import. This is useful for private columns that are not nullable and
20
+ # do not have a default.
21
+ #
22
+ # private_table - an array of tables to consider as completely private. This is
23
+ # a shortcut for marking all columns of a table as private.
24
+
25
+ private_tables = [
26
+ " __diesel_schema_migrations" ,
27
+ " api_tokens" ,
28
+ " background_jobs" ,
29
+ " crate_owner_invitations" ,
30
+ " emails" ,
31
+ " follows" ,
32
+ " publish_limit_buckets" ,
33
+ " publish_rate_overrides" ,
34
+ " readme_renderings" ,
35
+ " version_owner_actions" ,
36
+ " versions_published_by" ,
37
+ " version_downloads" ,
38
+ " version_downloads_default" ,
39
+ " version_downloads_archive" ,
40
+ " version_downloads_pre_2017" ,
41
+ " version_downloads_2017" ,
42
+ " version_downloads_2018_q1" ,
43
+ " version_downloads_2018_q2" ,
44
+ " version_downloads_2018_q3" ,
45
+ " version_downloads_2018_q4" ,
46
+ " version_downloads_2019_q1" ,
47
+ " version_downloads_2019_q2" ,
48
+ " version_downloads_2019_q3" ,
49
+ " version_downloads_2019_q4" ,
50
+ " version_downloads_2020_q1" ,
51
+ " version_downloads_2020_q2" ,
52
+ " version_downloads_2020_q3" ,
53
+ " version_downloads_2020_q4" ,
54
+ " version_downloads_2021_q1" ,
55
+ ]
56
+
57
+ [tables .badges ]
39
58
dependencies = [" crates" ]
40
- [badges .columns ]
59
+ [tables . badges .columns ]
41
60
crate_id = " public"
42
61
badge_type = " public"
43
62
attributes = " public"
44
63
45
- [categories .columns ]
64
+ [tables . categories .columns ]
46
65
id = " public"
47
66
category = " public"
48
67
slug = " public"
@@ -51,18 +70,10 @@ crates_cnt = "public"
51
70
created_at = " public"
52
71
path = " public"
53
72
54
- [crate_owner_invitations .columns ]
55
- invited_user_id = " private"
56
- invited_by_user_id = " private"
57
- crate_id = " private"
58
- created_at = " private"
59
- token = " private"
60
- token_generated_at = " private"
61
-
62
- [crate_owners ]
73
+ [tables .crate_owners ]
63
74
dependencies = [" crates" , " users" ]
64
75
filter = " NOT deleted"
65
- [crate_owners .columns ]
76
+ [tables . crate_owners .columns ]
66
77
crate_id = " public"
67
78
owner_id = " public"
68
79
created_at = " public"
@@ -72,7 +83,7 @@ updated_at = "private"
72
83
owner_kind = " public"
73
84
email_notifications = " private"
74
85
75
- [crates .columns ]
86
+ [tables . crates .columns ]
76
87
id = " public"
77
88
name = " public"
78
89
updated_at = " public"
@@ -86,21 +97,21 @@ textsearchable_index_col = "public"
86
97
repository = " public"
87
98
max_upload_size = " public"
88
99
89
- [crates_categories ]
100
+ [tables . crates_categories ]
90
101
dependencies = [" categories" , " crates" ]
91
- [crates_categories .columns ]
102
+ [tables . crates_categories .columns ]
92
103
crate_id = " public"
93
104
category_id = " public"
94
105
95
- [crates_keywords ]
106
+ [tables . crates_keywords ]
96
107
dependencies = [" crates" , " keywords" ]
97
- [crates_keywords .columns ]
108
+ [tables . crates_keywords .columns ]
98
109
crate_id = " public"
99
110
keyword_id = " public"
100
111
101
- [dependencies ]
112
+ [tables . dependencies ]
102
113
dependencies = [" crates" , " versions" ]
103
- [dependencies .columns ]
114
+ [tables . dependencies .columns ]
104
115
id = " public"
105
116
version_id = " public"
106
117
crate_id = " public"
@@ -111,99 +122,53 @@ features = "public"
111
122
target = " public"
112
123
kind = " public"
113
124
114
- [__diesel_schema_migrations .columns ]
115
- version = " private"
116
- run_on = " private"
117
-
118
- [emails .columns ]
119
- id = " private"
120
- user_id = " private"
121
- email = " private"
122
- verified = " private"
123
- token = " private"
124
- token_generated_at = " private"
125
-
126
- [follows .columns ]
127
- user_id = " private"
128
- crate_id = " private"
129
-
130
- [keywords .columns ]
125
+ [tables .keywords .columns ]
131
126
id = " public"
132
127
keyword = " public"
133
128
crates_cnt = " public"
134
129
created_at = " public"
135
130
136
- [metadata .columns ]
131
+ [tables . metadata .columns ]
137
132
total_downloads = " public"
138
133
139
- [publish_limit_buckets .columns ]
140
- user_id = " private"
141
- tokens = " private"
142
- last_refill = " private"
143
-
144
- [publish_rate_overrides .columns ]
145
- user_id = " private"
146
- burst = " private"
147
-
148
- [readme_renderings .columns ]
149
- version_id = " private"
150
- rendered_at = " private"
151
-
152
- [reserved_crate_names .columns ]
134
+ [tables .reserved_crate_names .columns ]
153
135
name = " public"
154
136
155
- [teams .columns ]
137
+ [tables . teams .columns ]
156
138
id = " public"
157
139
login = " public"
158
140
github_id = " public"
159
141
name = " public"
160
142
avatar = " public"
161
143
162
- [users ]
144
+ [tables . users ]
163
145
filter = """
164
146
id in (
165
147
SELECT owner_id AS user_id FROM crate_owners WHERE NOT deleted AND owner_kind = 0
166
148
UNION
167
149
SELECT published_by as user_id FROM versions
168
150
)"""
169
- [users .columns ]
151
+ [tables . users .columns ]
170
152
id = " public"
171
153
gh_access_token = " private"
172
154
gh_login = " public"
173
155
name = " public"
174
156
gh_avatar = " public"
175
157
gh_id = " public"
176
- [users .column_defaults ]
158
+ [tables . users .column_defaults ]
177
159
gh_access_token = " ''"
178
160
179
- [version_authors ]
161
+ [tables . version_authors ]
180
162
dependencies = [" versions" ]
181
- [version_authors .columns ]
163
+ [tables . version_authors .columns ]
182
164
id = " public"
183
165
version_id = " public"
184
166
user_id = " private"
185
167
name = " public"
186
168
187
- [version_downloads ]
188
- dependencies = [" versions" ]
189
- [version_downloads .columns ]
190
- version_id = " public"
191
- downloads = " public"
192
- counted = " private"
193
- date = " public"
194
- processed = " private"
195
-
196
- [version_owner_actions .columns ]
197
- id = " private"
198
- version_id = " private"
199
- user_id = " private"
200
- api_token_id = " private"
201
- action = " private"
202
- time = " private"
203
-
204
- [versions ]
169
+ [tables .versions ]
205
170
dependencies = [" crates" , " users" ]
206
- [versions .columns ]
171
+ [tables . versions .columns ]
207
172
id = " public"
208
173
crate_id = " public"
209
174
num = " public"
@@ -215,7 +180,3 @@ yanked = "public"
215
180
license = " public"
216
181
crate_size = " public"
217
182
published_by = " public"
218
-
219
- [versions_published_by .columns ]
220
- version_id = " private"
221
- email = " private"
0 commit comments