@@ -131,8 +131,8 @@ jobs:
131131 - name : Check benchmarks
132132 run : sh -x -c "ci/check-profiling.sh"
133133
134- database-check-postgres :
135- name : Database Check (postgres)
134+ database-check :
135+ name : Database Check
136136 runs-on : ubuntu-latest
137137 services :
138138 postgres :
@@ -156,27 +156,48 @@ jobs:
156156 with :
157157 toolchain : stable
158158
159+ - name : Build site
160+ run : cargo build --bin site
161+
159162 - name : Connect to PostgreSQL
160163 run : |
161- cargo build --bin site
162164 timeout 5s ./target/debug/site 'postgresql://postgres:postgres@localhost:5432/postgres' 2>&1 | tee -a log || true
163165 grep -Fxq "Loading complete but no data identified; exiting." log
164166
165- database-check-sqlite :
166- name : Database Check (sqlite)
167- runs-on : ubuntu-latest
168-
169- steps :
170- - name : Check out repository code
171- uses : actions/checkout@v2
172-
173- - name : Install stable
174- uses : actions-rs/toolchain@v1
175- with :
176- toolchain : stable
177-
178167 - name : Connect to SQLite
179168 run : |
180- cargo build --bin site
181169 timeout 5s ./target/debug/site 2>&1 | tee -a log || true
182170 grep -Fxq "Loading complete but no data identified; exiting." log
171+
172+ - name : Build Postgres to SQLite exporter
173+ run : cargo build --bin postgres-to-sqlite
174+
175+ - name : Export empty Postgres DB to SQLite
176+ run : ./target/debug/postgres-to-sqlite 'postgresql://postgres:postgres@localhost:5432/postgres' "$(mktemp)"
177+
178+ - name : Export empty Postgres DB to SQLite with date filter
179+ run : ./target/debug/postgres-to-sqlite --since-weeks-ago=1 'postgresql://postgres:postgres@localhost:5432/postgres' "$(mktemp)"
180+
181+ - name : Build SQLite to Postgres exporter
182+ run : cargo build --bin sqlite-to-postgres
183+
184+ - name : Export empty SQLite DB to Postgres
185+ run : ./target/debug/sqlite-to-postgres "$(mktemp)" 'postgresql://postgres:postgres@localhost:5432/postgres'
186+
187+ - name : Roundtrip export
188+ run : |
189+ sudo apt-get update
190+ sudo apt-get install -y wget python3-snappy sqlite3
191+
192+ wget -q 'http://perf-data.rust-lang.org/export.db.sz'
193+ python3 -m snappy -d export.db.sz > before.db
194+
195+ ./target/debug/sqlite-to-postgres before.db 'postgresql://postgres:postgres@localhost:5432/postgres'
196+ sqlite3 before.db .dump > before.dump
197+
198+ rm before.db
199+
200+ ./target/debug/postgres-to-sqlite 'postgresql://postgres:postgres@localhost:5432/postgres' after.db
201+ sqlite3 after.db .dump > after.dump
202+
203+ diff -w before.dump after.dump
0 commit comments