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
+ ]
39
+
40
+ [tables .badges ]
39
41
dependencies = [" crates" ]
40
- [badges .columns ]
42
+ [tables . badges .columns ]
41
43
crate_id = " public"
42
44
badge_type = " public"
43
45
attributes = " public"
44
46
45
- [categories .columns ]
47
+ [tables . categories .columns ]
46
48
id = " public"
47
49
category = " public"
48
50
slug = " public"
@@ -51,18 +53,10 @@ crates_cnt = "public"
51
53
created_at = " public"
52
54
path = " public"
53
55
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 ]
56
+ [tables .crate_owners ]
63
57
dependencies = [" crates" , " users" ]
64
58
filter = " NOT deleted"
65
- [crate_owners .columns ]
59
+ [tables . crate_owners .columns ]
66
60
crate_id = " public"
67
61
owner_id = " public"
68
62
created_at = " public"
@@ -72,7 +66,7 @@ updated_at = "private"
72
66
owner_kind = " public"
73
67
email_notifications = " private"
74
68
75
- [crates .columns ]
69
+ [tables . crates .columns ]
76
70
id = " public"
77
71
name = " public"
78
72
updated_at = " public"
@@ -86,21 +80,21 @@ textsearchable_index_col = "public"
86
80
repository = " public"
87
81
max_upload_size = " public"
88
82
89
- [crates_categories ]
83
+ [tables . crates_categories ]
90
84
dependencies = [" categories" , " crates" ]
91
- [crates_categories .columns ]
85
+ [tables . crates_categories .columns ]
92
86
crate_id = " public"
93
87
category_id = " public"
94
88
95
- [crates_keywords ]
89
+ [tables . crates_keywords ]
96
90
dependencies = [" crates" , " keywords" ]
97
- [crates_keywords .columns ]
91
+ [tables . crates_keywords .columns ]
98
92
crate_id = " public"
99
93
keyword_id = " public"
100
94
101
- [dependencies ]
95
+ [tables . dependencies ]
102
96
dependencies = [" crates" , " versions" ]
103
- [dependencies .columns ]
97
+ [tables . dependencies .columns ]
104
98
id = " public"
105
99
version_id = " public"
106
100
crate_id = " public"
@@ -111,99 +105,53 @@ features = "public"
111
105
target = " public"
112
106
kind = " public"
113
107
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 ]
108
+ [tables .keywords .columns ]
131
109
id = " public"
132
110
keyword = " public"
133
111
crates_cnt = " public"
134
112
created_at = " public"
135
113
136
- [metadata .columns ]
114
+ [tables . metadata .columns ]
137
115
total_downloads = " public"
138
116
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 ]
117
+ [tables .reserved_crate_names .columns ]
153
118
name = " public"
154
119
155
- [teams .columns ]
120
+ [tables . teams .columns ]
156
121
id = " public"
157
122
login = " public"
158
123
github_id = " public"
159
124
name = " public"
160
125
avatar = " public"
161
126
162
- [users ]
127
+ [tables . users ]
163
128
filter = """
164
129
id in (
165
130
SELECT owner_id AS user_id FROM crate_owners WHERE NOT deleted AND owner_kind = 0
166
131
UNION
167
132
SELECT published_by as user_id FROM versions
168
133
)"""
169
- [users .columns ]
134
+ [tables . users .columns ]
170
135
id = " public"
171
136
gh_access_token = " private"
172
137
gh_login = " public"
173
138
name = " public"
174
139
gh_avatar = " public"
175
140
gh_id = " public"
176
- [users .column_defaults ]
141
+ [tables . users .column_defaults ]
177
142
gh_access_token = " ''"
178
143
179
- [version_authors ]
144
+ [tables . version_authors ]
180
145
dependencies = [" versions" ]
181
- [version_authors .columns ]
146
+ [tables . version_authors .columns ]
182
147
id = " public"
183
148
version_id = " public"
184
149
user_id = " private"
185
150
name = " public"
186
151
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 ]
152
+ [tables .versions ]
205
153
dependencies = [" crates" , " users" ]
206
- [versions .columns ]
154
+ [tables . versions .columns ]
207
155
id = " public"
208
156
crate_id = " public"
209
157
num = " public"
@@ -215,7 +163,3 @@ yanked = "public"
215
163
license = " public"
216
164
crate_size = " public"
217
165
published_by = " public"
218
-
219
- [versions_published_by .columns ]
220
- version_id = " private"
221
- email = " private"
0 commit comments