Skip to content

Commit 0f78545

Browse files
committed
Pretend version_downloads::processed doesn't exist
Since the partitioned `version_downloads` table doesn't contain this column, we need to remove any references to it before actually doing a migration which would remove it. Deployment instructions ======================= This commit does not do anything destructive, and can technically be deployed with the previous commit. It must be deployed *before* the next commit, however. This commit is safe to roll back.
1 parent 8787fd5 commit 0f78545

File tree

3 files changed

+3
-109
lines changed

3 files changed

+3
-109
lines changed

src/models/download.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ pub struct VersionDownload {
1313
pub downloads: i32,
1414
pub counted: i32,
1515
pub date: NaiveDate,
16-
pub processed: bool,
1716
}
1817

1918
impl VersionDownload {

src/schema.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -863,12 +863,6 @@ table! {
863863
///
864864
/// (Automatically generated by Diesel.)
865865
date -> Date,
866-
/// The `processed` column of the `version_downloads` table.
867-
///
868-
/// Its SQL type is `Bool`.
869-
///
870-
/// (Automatically generated by Diesel.)
871-
processed -> Bool,
872866
}
873867
}
874868

src/tasks/update_downloads.rs

Lines changed: 3 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,18 @@ pub fn update_downloads(env: &Environment) -> Result<(), PerformError> {
1616

1717
fn update(conn: &PgConnection) -> QueryResult<()> {
1818
use self::version_downloads::dsl::*;
19-
use diesel::dsl::now;
19+
use diesel::dsl::{now, IntervalDsl};
2020
use diesel::select;
2121

2222
let rows = version_downloads
23-
.filter(processed.eq(false))
2423
.filter(downloads.ne(counted))
24+
.filter(date.ge(diesel::dsl::date(now - 1.week())))
2525
.load(conn)?;
2626

2727
println!("Updating {} versions", rows.len());
2828
collect(conn, &rows)?;
2929
println!("Finished updating versions");
3030

31-
// Anything older than 24 hours ago will be frozen and will not be queried
32-
// against again.
33-
diesel::update(version_downloads)
34-
.set(processed.eq(true))
35-
.filter(date.lt(diesel::dsl::date(now)))
36-
.filter(downloads.eq(counted))
37-
.filter(processed.eq(false))
38-
.execute(conn)?;
39-
println!("Finished freezing old version_downloads");
40-
4131
no_arg_sql_function!(refresh_recent_crate_downloads, ());
4232
select(refresh_recent_crate_downloads).execute(conn)?;
4333
println!("Finished running refresh_recent_crate_downloads");
@@ -138,8 +128,7 @@ mod test {
138128
insert_into(version_downloads::table)
139129
.values((
140130
version_downloads::version_id.eq(version.id),
141-
version_downloads::date.eq(date(now - 1.day())),
142-
version_downloads::processed.eq(true),
131+
version_downloads::date.eq(date(now - 8.days())),
143132
))
144133
.execute(&conn)
145134
.unwrap();
@@ -163,55 +152,6 @@ mod test {
163152
assert_eq!(Ok(1), version_downloads);
164153
}
165154

166-
#[test]
167-
fn set_processed_true() {
168-
use diesel::dsl::*;
169-
170-
let conn = conn();
171-
let user = user(&conn);
172-
let (_, version) = crate_and_version(&conn, user.id);
173-
insert_into(version_downloads::table)
174-
.values((
175-
version_downloads::version_id.eq(version.id),
176-
version_downloads::downloads.eq(2),
177-
version_downloads::counted.eq(2),
178-
version_downloads::date.eq(date(now - 2.days())),
179-
version_downloads::processed.eq(false),
180-
))
181-
.execute(&conn)
182-
.unwrap();
183-
super::update(&conn).unwrap();
184-
let processed = version_downloads::table
185-
.filter(version_downloads::version_id.eq(version.id))
186-
.select(version_downloads::processed)
187-
.first(&conn);
188-
assert_eq!(Ok(true), processed);
189-
}
190-
191-
#[test]
192-
fn dont_process_recent_row() {
193-
use diesel::dsl::*;
194-
let conn = conn();
195-
let user = user(&conn);
196-
let (_, version) = crate_and_version(&conn, user.id);
197-
insert_into(version_downloads::table)
198-
.values((
199-
version_downloads::version_id.eq(version.id),
200-
version_downloads::downloads.eq(2),
201-
version_downloads::counted.eq(2),
202-
version_downloads::date.eq(date(now)),
203-
version_downloads::processed.eq(false),
204-
))
205-
.execute(&conn)
206-
.unwrap();
207-
super::update(&conn).unwrap();
208-
let processed = version_downloads::table
209-
.filter(version_downloads::version_id.eq(version.id))
210-
.select(version_downloads::processed)
211-
.first(&conn);
212-
assert_eq!(Ok(false), processed);
213-
}
214-
215155
#[test]
216156
fn increment_a_little() {
217157
use diesel::dsl::*;
@@ -234,7 +174,6 @@ mod test {
234174
version_downloads::downloads.eq(2),
235175
version_downloads::counted.eq(1),
236176
version_downloads::date.eq(date(now)),
237-
version_downloads::processed.eq(false),
238177
))
239178
.execute(&conn)
240179
.unwrap();
@@ -274,42 +213,4 @@ mod test {
274213
.unwrap();
275214
assert_eq!(version3.downloads, 2);
276215
}
277-
278-
#[test]
279-
fn set_processed_no_set_updated_at() {
280-
use diesel::dsl::*;
281-
use diesel::update;
282-
283-
let conn = conn();
284-
let user = user(&conn);
285-
let (_, version) = crate_and_version(&conn, user.id);
286-
update(versions::table)
287-
.set(versions::updated_at.eq(now - 2.days()))
288-
.execute(&conn)
289-
.unwrap();
290-
update(crates::table)
291-
.set(crates::updated_at.eq(now - 2.days()))
292-
.execute(&conn)
293-
.unwrap();
294-
insert_into(version_downloads::table)
295-
.values((
296-
version_downloads::version_id.eq(version.id),
297-
version_downloads::downloads.eq(2),
298-
version_downloads::counted.eq(2),
299-
version_downloads::date.eq(date(now - 2.days())),
300-
version_downloads::processed.eq(false),
301-
))
302-
.execute(&conn)
303-
.unwrap();
304-
305-
super::update(&conn).unwrap();
306-
let versions_changed = versions::table
307-
.select(versions::updated_at.ne(now - 2.days()))
308-
.get_result(&conn);
309-
let crates_changed = crates::table
310-
.select(crates::updated_at.ne(now - 2.days()))
311-
.get_result(&conn);
312-
assert_eq!(Ok(false), versions_changed);
313-
assert_eq!(Ok(false), crates_changed);
314-
}
315216
}

0 commit comments

Comments
 (0)